Here is the new version of the QUORUM block driver. It now use bdrv_image_open for using QMP references and support snapshotting via the bs node-name infrastructure.
I think the series is feature complete. It applies on top of Max bdrv_openv2 branch. in v10 reference support thanks with Kevin help [Benoît] snapshot support [Benoît] "operation it performs on its children" [Max] s/hold/holds/ [Max] s/occur/occurs/ [Max] Change callback cancelation [Max] Make quorum compilation optional in order not to depend on gnutls [Max] Benoît Canet (13): quorum: Create quorum.c, add QuorumSingleAIOCB and QuorumAIOCB. quorum: Create BDRVQuorumState and BlkDriver and do init. quorum: Add quorum_aio_writev and its dependencies. blkverify: Extract qemu_iovec_clone() and qemu_iovec_compare() from blkverify. quorum: Add quorum_aio_readv. quorum: Add quorum mechanism. quorum: Add quorum_getlength(). quorum: Add quorum_invalidate_cache(). quorum: Add quorum_co_get_block_status. quorum: Add quorum_co_flush(). quorum: Implement recursive .bdrv_recurse_is_first_non_filter in quorum. quorum: Add quorum_open() and quorum_close(). quorum: Add unit test. block/Makefile.objs | 1 + block/blkverify.c | 108 +---- block/quorum.c | 1036 ++++++++++++++++++++++++++++++++++++++++++++ configure | 36 ++ docs/qmp/qmp-events.txt | 33 ++ include/monitor/monitor.h | 2 + include/qemu-common.h | 2 + monitor.c | 2 + qapi-schema.json | 21 +- tests/qemu-iotests/075 | 85 ++++ tests/qemu-iotests/075.out | 27 ++ tests/qemu-iotests/group | 1 + util/iov.c | 103 +++++ 13 files changed, 1350 insertions(+), 107 deletions(-) create mode 100644 block/quorum.c create mode 100644 tests/qemu-iotests/075 create mode 100644 tests/qemu-iotests/075.out -- 1.8.3.2