diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 3695b26fac..d6e7570ea4 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -16555,25 +16555,6 @@ qemuDomainBlockPullCommon(virQEMUDriverPtr driver, goto cleanup; } - if (qemuDomainSupportsBlockJobs(vm, &modern) < 0) - goto cleanup; - - if (!modern) { - if (base) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("partial block pull not supported with this " - "QEMU binary")); - goto cleanup; - } - - if (bandwidth) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("setting bandwidth at start of block pull not " - "supported with this QEMU binary")); - goto cleanup; - } - } - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) goto cleanup; @@ -16583,6 +16564,25 @@ qemuDomainBlockPullCommon(virQEMUDriverPtr driver, goto endjob; } + if (qemuDomainSupportsBlockJobs(vm, &modern) < 0) + goto endjob; + + if (!modern) { + if (base) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("partial block pull not supported with this " + "QEMU binary")); + goto endjob; + } + + if (bandwidth) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("setting bandwidth at start of block pull not " + "supported with this QEMU binary")); + goto endjob; + } + } + if (!(device = qemuDiskPathToAlias(vm, path, &idx))) goto endjob; disk = vm->def->disks[idx]; @@ -16682,9 +16682,6 @@ qemuDomainBlockJobAbort(virDomainPtr dom, if (virDomainBlockJobAbortEnsureACL(dom->conn, vm->def) < 0) goto cleanup; - if (qemuDomainSupportsBlockJobs(vm, &modern) < 0) - goto cleanup; - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) goto cleanup; @@ -16694,6 +16691,9 @@ qemuDomainBlockJobAbort(virDomainPtr dom, goto endjob; } + if (qemuDomainSupportsBlockJobs(vm, &modern) < 0) + goto endjob; + if (!(device = qemuDiskPathToAlias(vm, path, &idx))) goto endjob; disk = vm->def->disks[idx]; @@ -16896,9 +16896,6 @@ qemuDomainBlockJobSetSpeed(virDomainPtr dom, if (virDomainBlockJobSetSpeedEnsureACL(dom->conn, vm->def) < 0) goto cleanup; - if (qemuDomainSupportsBlockJobs(vm, &modern) < 0) - goto cleanup; - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) goto cleanup; @@ -16908,6 +16905,9 @@ qemuDomainBlockJobSetSpeed(virDomainPtr dom, goto endjob; } + if (qemuDomainSupportsBlockJobs(vm, &modern) < 0) + goto endjob; + if (!(device = qemuDiskPathToAlias(vm, path, NULL))) goto endjob;