v2: 01: Move bdrv_op_block_all down. [Max] 02, 04: Add Max's rev-by. 03: Check has_mode and fix "return;". [Max] 05: Check target->blk. Drop superfluous whitespace. [Max] 06: Drop superfluous whitespace hunk and add Max's rev-by. [Max]
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 | 175 ++++++++++++++++++++++++++++++---------- 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 | 99 ++++++++++++++++++----- tests/qemu-iotests/041.out | 4 +- 8 files changed, 314 insertions(+), 66 deletions(-) -- 2.4.3