[adding block maintainers to cc]
On 10/09/2014 11:44 AM, adamcr...@gmail.com wrote:
From: Adam Crume <adamcr...@gmail.com>
This fixes Ceph issue 2467.
Signed-off-by: Adam Crume <adamcr...@gmail.com>
---
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;
No return needed here. With that fixed:
Reviewed-by: Josh Durgin <josh.dur...@inktank.com>
+}
+#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)