]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/libvirt.git/commitdiff
qemu: Un-mark volume as mirrored/copied if blockjob copy fails
authorPeter Krempa <pkrempa@redhat.com>
Wed, 20 Mar 2013 15:48:23 +0000 (16:48 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Thu, 21 Mar 2013 11:32:03 +0000 (12:32 +0100)
When the blockjob fails for some reason an event is emitted but the disk
wasn't unmarked as being part of a active block copy operation.

src/qemu/qemu_process.c

index 14aa8922ed60b25dd1c7b27c2e7567a1d1315e69..8c4bfb76db2e8d0d8cf406276d78d97d6769e693 100644 (file)
@@ -965,6 +965,9 @@ qemuProcessHandleBlockJob(qemuMonitorPtr mon ATTRIBUTE_UNUSED,
         if (disk->mirror && type == VIR_DOMAIN_BLOCK_JOB_TYPE_COPY &&
             status == VIR_DOMAIN_BLOCK_JOB_READY)
             disk->mirroring = true;
+        if (disk->mirror && type == VIR_DOMAIN_BLOCK_JOB_TYPE_COPY &&
+            status == VIR_DOMAIN_BLOCK_JOB_FAILED)
+            VIR_FREE(disk->mirror);
     }
 
     virObjectUnlock(vm);