On 27.06.2011 11:27, Jiri Denemark wrote: > When CURRENT and FORCE flags were used together, UpdateDeviceFlags did > nothing because it failed to transform CURRENT into either LIVE or > CONFIG. > --- > src/qemu/qemu_driver.c | 7 +++++-- > 1 files changed, 5 insertions(+), 2 deletions(-) > > diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c > index da612e7..8596b30 100644 > --- a/src/qemu/qemu_driver.c > +++ b/src/qemu/qemu_driver.c > @@ -4789,12 +4789,15 @@ qemuDomainModifyDeviceFlags(virDomainPtr dom, const char *xml, > virDomainDeviceDefPtr dev = NULL; > bool force = (flags & VIR_DOMAIN_DEVICE_MODIFY_FORCE) != 0; > int ret = -1; > + unsigned int affect; > > virCheckFlags(VIR_DOMAIN_AFFECT_LIVE | > VIR_DOMAIN_AFFECT_CONFIG | > (action == QEMU_DEVICE_UPDATE ? > VIR_DOMAIN_DEVICE_MODIFY_FORCE : 0), -1); > > + affect = flags & (VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG); > + > qemuDriverLock(driver); > vm = virDomainFindByUUID(&driver->domains, dom->uuid); > if (!vm) { > @@ -4809,10 +4812,10 @@ qemuDomainModifyDeviceFlags(virDomainPtr dom, const char *xml, > goto cleanup; > > if (virDomainObjIsActive(vm)) { > - if (flags == VIR_DOMAIN_AFFECT_CURRENT) > + if (affect == VIR_DOMAIN_AFFECT_CURRENT) > flags |= VIR_DOMAIN_AFFECT_LIVE; > } else { > - if (flags == VIR_DOMAIN_AFFECT_CURRENT) > + if (affect == VIR_DOMAIN_AFFECT_CURRENT) > flags |= VIR_DOMAIN_AFFECT_CONFIG; > /* check consistency between flags and the vm state */ > if (flags & VIR_DOMAIN_AFFECT_LIVE) { ACK. Things works again with this patch. Michal -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list