]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemuDomainBlockPivot: Move check prior to executing the pivot steps
authorPeter Krempa <pkrempa@redhat.com>
Tue, 18 Feb 2020 16:10:46 +0000 (17:10 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Fri, 13 Mar 2020 12:09:12 +0000 (13:09 +0100)
Move the check whether the job is already synchronised to the beginning
of the function so that we don't try to do some of the steps necessary
for pivoting prior to actually wanting to pivot.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
src/qemu/qemu_driver.c

index e285e9373ca4017471baac5eb330e7672718a012..ac1e1e2f8f03e976d5ad99971bbf5e13d3dd0731 100644 (file)
@@ -17236,6 +17236,13 @@ qemuDomainBlockPivot(virQEMUDriverPtr driver,
     bool blockdev = virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCKDEV);
     g_autoptr(virJSONValue) actions = NULL;
 
+    if (job->state != QEMU_BLOCKJOB_STATE_READY) {
+        virReportError(VIR_ERR_BLOCK_COPY_ACTIVE,
+                       _("block job '%s' not ready for pivot yet"),
+                       job->name);
+        return -1;
+    }
+
     switch ((qemuBlockJobType) job->type) {
     case QEMU_BLOCKJOB_TYPE_NONE:
     case QEMU_BLOCKJOB_TYPE_LAST:
@@ -17273,13 +17280,6 @@ qemuDomainBlockPivot(virQEMUDriverPtr driver,
         break;
     }
 
-    if (job->state != QEMU_BLOCKJOB_STATE_READY) {
-        virReportError(VIR_ERR_BLOCK_COPY_ACTIVE,
-                       _("block job '%s' not ready for pivot yet"),
-                       job->name);
-        return -1;
-    }
-
     qemuDomainObjEnterMonitor(driver, vm);
     if (blockdev) {
         int rc = 0;