]> xenbits.xensource.com Git - qemu-xen.git/commitdiff
block: Add check on mirror target
authorFam Zheng <famz@redhat.com>
Thu, 24 Dec 2015 04:45:04 +0000 (12:45 +0800)
committerMax Reitz <mreitz@redhat.com>
Thu, 7 Jan 2016 20:30:18 +0000 (21:30 +0100)
Signed-off-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-id: 1450932306-13717-4-git-send-email-famz@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
blockdev.c
include/block/block.h

index 22e06ba75e0fb2f1902c6046015bcd99311b0c9d..f42e1713e9ccc9dd62a071987a14273286bf0446 100644 (file)
@@ -3342,6 +3342,9 @@ static void blockdev_mirror_common(BlockDriverState *bs,
     if (bdrv_op_is_blocked(bs, BLOCK_OP_TYPE_MIRROR_SOURCE, errp)) {
         return;
     }
+    if (bdrv_op_is_blocked(target, BLOCK_OP_TYPE_MIRROR_TARGET, errp)) {
+        return;
+    }
 
     if (!bs->backing && sync == MIRROR_SYNC_MODE_TOP) {
         sync = MIRROR_SYNC_MODE_FULL;
index 8ea12fa222187b7eb9921ed9c91f09aedaa43570..c96923df99aca6fb2ab549f6c4d1d671d7b41c55 100644 (file)
@@ -170,6 +170,7 @@ typedef enum BlockOpType {
     BLOCK_OP_TYPE_INTERNAL_SNAPSHOT,
     BLOCK_OP_TYPE_INTERNAL_SNAPSHOT_DELETE,
     BLOCK_OP_TYPE_MIRROR_SOURCE,
+    BLOCK_OP_TYPE_MIRROR_TARGET,
     BLOCK_OP_TYPE_RESIZE,
     BLOCK_OP_TYPE_STREAM,
     BLOCK_OP_TYPE_REPLACE,