qemuDomainBlockPivot: Move check prior to executing the pivot steps

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>
This commit is contained in:
Peter Krempa 2020-02-18 17:10:46 +01:00
parent 7c7fda15f3
commit a89ba6524c

View 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;