rbd.c (58e2e17dba49b43f4ac9de19468aeae1c787dcc2) rbd.c (2b148f392b2bfeba76d3e6d9607c3bd072350e8c)
1/*
2 * QEMU Block driver for RADOS (Ceph)
3 *
4 * Copyright (C) 2010-2011 Christian Brunner <chb@muc.de>,
5 * Josh Durgin <josh.durgin@dreamhost.com>
6 *
7 * This work is licensed under the terms of the GNU GPL, version 2. See
8 * the COPYING file in the top-level directory.

--- 1079 unchanged lines hidden (view full) ---

1088 void *opaque)
1089{
1090 return rbd_start_aio(bs, offset, NULL, bytes, cb, opaque,
1091 RBD_AIO_DISCARD);
1092}
1093#endif
1094
1095#ifdef LIBRBD_SUPPORTS_INVALIDATE
1/*
2 * QEMU Block driver for RADOS (Ceph)
3 *
4 * Copyright (C) 2010-2011 Christian Brunner <chb@muc.de>,
5 * Josh Durgin <josh.durgin@dreamhost.com>
6 *
7 * This work is licensed under the terms of the GNU GPL, version 2. See
8 * the COPYING file in the top-level directory.

--- 1079 unchanged lines hidden (view full) ---

1088 void *opaque)
1089{
1090 return rbd_start_aio(bs, offset, NULL, bytes, cb, opaque,
1091 RBD_AIO_DISCARD);
1092}
1093#endif
1094
1095#ifdef LIBRBD_SUPPORTS_INVALIDATE
1096static void qemu_rbd_invalidate_cache(BlockDriverState *bs,
1097 Error **errp)
1096static void coroutine_fn qemu_rbd_co_invalidate_cache(BlockDriverState *bs,
1097 Error **errp)
1098{
1099 BDRVRBDState *s = bs->opaque;
1100 int r = rbd_invalidate_cache(s->image);
1101 if (r < 0) {
1102 error_setg_errno(errp, -r, "Failed to invalidate the cache");
1103 }
1104}
1105#endif

--- 49 unchanged lines hidden (view full) ---

1155 .bdrv_aio_pdiscard = qemu_rbd_aio_pdiscard,
1156#endif
1157
1158 .bdrv_snapshot_create = qemu_rbd_snap_create,
1159 .bdrv_snapshot_delete = qemu_rbd_snap_remove,
1160 .bdrv_snapshot_list = qemu_rbd_snap_list,
1161 .bdrv_snapshot_goto = qemu_rbd_snap_rollback,
1162#ifdef LIBRBD_SUPPORTS_INVALIDATE
1098{
1099 BDRVRBDState *s = bs->opaque;
1100 int r = rbd_invalidate_cache(s->image);
1101 if (r < 0) {
1102 error_setg_errno(errp, -r, "Failed to invalidate the cache");
1103 }
1104}
1105#endif

--- 49 unchanged lines hidden (view full) ---

1155 .bdrv_aio_pdiscard = qemu_rbd_aio_pdiscard,
1156#endif
1157
1158 .bdrv_snapshot_create = qemu_rbd_snap_create,
1159 .bdrv_snapshot_delete = qemu_rbd_snap_remove,
1160 .bdrv_snapshot_list = qemu_rbd_snap_list,
1161 .bdrv_snapshot_goto = qemu_rbd_snap_rollback,
1162#ifdef LIBRBD_SUPPORTS_INVALIDATE
1163 .bdrv_invalidate_cache = qemu_rbd_invalidate_cache,
1163 .bdrv_co_invalidate_cache = qemu_rbd_co_invalidate_cache,
1164#endif
1165};
1166
1167static void bdrv_rbd_init(void)
1168{
1169 bdrv_register(&bdrv_rbd);
1170}
1171
1172block_init(bdrv_rbd_init);
1164#endif
1165};
1166
1167static void bdrv_rbd_init(void)
1168{
1169 bdrv_register(&bdrv_rbd);
1170}
1171
1172block_init(bdrv_rbd_init);