On Thu, May 23, 2013 at 14:37:31 +0200, Martin Kletzander wrote: > Function qemuDomainSetBlockIoTune() was creating job and checking QEMU > capabilities even when !(flags & VIR_DOMAIN_AFFECT_LIVE) and the > domain was shutoff. Fix this with a little cleanup. Actually, the job needs to be hold for the whole function, not just when the domain is running... > diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c > index 3df26b8..49432f0 100644 > --- a/src/qemu/qemu_driver.c > +++ b/src/qemu/qemu_driver.c > @@ -13921,27 +13921,12 @@ qemuDomainSetBlockIoTune(virDomainPtr dom, > priv = vm->privateData; > cfg = virQEMUDriverGetConfig(driver); > > - if (!(caps = virQEMUDriverGetCapabilities(driver, false))) > - goto cleanup; > - > - if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_DRIVE_IOTUNE)) { > - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", > - _("block I/O throttling not supported with this " > - "QEMU binary")); > - goto cleanup; > - } > - > - device = qemuDiskPathToAlias(vm, disk, &idx); > - if (!device) { > - goto cleanup; > - } > - > - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) > + if (!(device = qemuDiskPathToAlias(vm, disk, &idx))) > goto cleanup; ... however, you're right qemuDomainObjBeginJob was not called in the right place. But rather than moving it further in the code, it should be moved before qemuDiskPathToAlias. Jirka -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list