[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH] rbd: Add support for bdrv_invalidate_cache
From: |
adamcrume |
Subject: |
[Qemu-devel] [PATCH] rbd: Add support for bdrv_invalidate_cache |
Date: |
Thu, 9 Oct 2014 11:44:32 -0700 |
From: Adam Crume <address@hidden>
This fixes Ceph issue 2467.
Signed-off-by: Adam Crume <address@hidden>
---
block/rbd.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/block/rbd.c b/block/rbd.c
index 96947e3..d88ba70 100644
--- a/block/rbd.c
+++ b/block/rbd.c
@@ -887,6 +887,19 @@ static BlockDriverAIOCB*
qemu_rbd_aio_discard(BlockDriverState *bs,
}
#endif
+#ifdef LIBRBD_SUPPORTS_INVALIDATE
+static void qemu_rbd_invalidate_cache(BlockDriverState *bs,
+ Error **errp)
+{
+ BDRVRBDState *s = bs->opaque;
+ int r = rbd_invalidate_cache(s->image);
+ if (r < 0) {
+ error_setg_errno(errp, -r, "Failed to invalidate the cache");
+ }
+ return r;
+}
+#endif
+
static QemuOptsList qemu_rbd_create_opts = {
.name = "rbd-create-opts",
.head = QTAILQ_HEAD_INITIALIZER(qemu_rbd_create_opts.head),
@@ -936,6 +949,9 @@ static BlockDriver bdrv_rbd = {
.bdrv_snapshot_delete = qemu_rbd_snap_remove,
.bdrv_snapshot_list = qemu_rbd_snap_list,
.bdrv_snapshot_goto = qemu_rbd_snap_rollback,
+#ifdef LIBRBD_SUPPORTS_INVALIDATE
+ .bdrv_invalidate_cache = qemu_rbd_invalidate_cache,
+#endif
};
static void bdrv_rbd_init(void)
--
1.7.9.5
- [Qemu-devel] [PATCH] rbd: Add support for bdrv_invalidate_cache,
adamcrume <=