On 08.04.2015 08:51, Michael Chapman wrote: > Currently we check qemuCaps before starting the block job. But qemuCaps > isn't available on a stopped domain, which means we get a misleading > error message in this case: > > # virsh domstate example > shut off > > # virsh blockjob example vda > error: unsupported configuration: block jobs not supported with this QEMU binary > > Move the qemuCaps check into the block job so that we are guaranteed the > domain is running. > > Signed-off-by: Michael Chapman <mike@xxxxxxxxxxxxxxxxx> > --- > src/qemu/qemu_driver.c | 13 +++++++------ > 1 file changed, 7 insertions(+), 6 deletions(-) > > diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c > index becf415..cb9295e 100644 > --- a/src/qemu/qemu_driver.c > +++ b/src/qemu/qemu_driver.c > @@ -16476,12 +16476,6 @@ qemuDomainGetBlockJobInfo(virDomainPtr dom, const char *path, > } > > priv = vm->privateData; > - if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCKJOB_ASYNC) && > - !virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCKJOB_SYNC)) { > - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", > - _("block jobs not supported with this QEMU binary")); > - goto cleanup; > - } > > if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_QUERY) < 0) > goto cleanup; > @@ -16492,6 +16486,13 @@ qemuDomainGetBlockJobInfo(virDomainPtr dom, const char *path, > goto endjob; > } > > + if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCKJOB_ASYNC) && > + !virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCKJOB_SYNC)) { > + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", > + _("block jobs not supported with this QEMU binary")); > + goto endjob; > + } > + > device = qemuDiskPathToAlias(vm, path, &idx); > if (!device) > goto endjob; > ACked and pushed. Michal -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list