This is the counterpart of blockdev-backup. The biggest value of this command is to allow full flexibility on target image open options, via blockdev-add. For example this could help solve the target provisioning issue in:
http://lists.gnu.org/archive/html/qemu-devel/2015-06/msg02139.html Because mirror job uses bdrv_swap, this series depends on Max's BlockBackend series: [PATCH v3 00/38] blockdev: BlockBackend and media http://lists.nongnu.org/archive/html/qemu-devel/2015-06/msg01109.html which makes it possible for blockdev-add to insert a BDS without BB (by omitting "id=" while only specifying "node-name="). Fam Zheng (6): block: Add blocker on mirror target block: Rename BLOCK_OP_TYPE_MIRROR to BLOCK_OP_TYPE_MIRROR_SOURCE block: Extract blockdev part of qmp_drive_mirror block: Add check on mirror target qmp: Add blockdev-mirror command iotests: Add test cases for blockdev-mirror block/mirror.c | 2 + blockdev.c | 177 ++++++++++++++++++++++++++++++---------- hw/block/dataplane/virtio-blk.c | 2 +- include/block/block.h | 3 +- qapi/block-core.json | 47 +++++++++++ qmp-commands.hx | 48 +++++++++++ tests/qemu-iotests/041 | 100 ++++++++++++++++++----- tests/qemu-iotests/041.out | 4 +- 8 files changed, 313 insertions(+), 70 deletions(-) -- 2.4.2