On 12/10/2010 12:06 AM, Osier Yang wrote: > As qemu driver doesn't allow to make changes on persistent > domain configuration via "attach/detach/update device", > and all the changes made on the running domain configuration > should not be persistent across next boot (without the need > of restarting libvirtd), so: > 1) Set the running domain def as transient, and restore > the domain configuration to original configuration when > shutdown. > 2) Set the running domain def as updated, and reset it as > not updated when shutdown. > > Also for "live VCPU set", it doesn't change the persistent > domain configuration, so, we also set the running domain > def as updated and transient, and restore the original def > when shutdown. > > * src/qemu/qemu_driver.c > --- > src/qemu/qemu_driver.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++ > 1 files changed, 47 insertions(+), 0 deletions(-) > > diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c > index 19ce9a6..a3d87eb 100644 > --- a/src/qemu/qemu_driver.c > +++ b/src/qemu/qemu_driver.c > @@ -4429,11 +4429,18 @@ retry: > VIR_FREE(priv->vcpupids); > priv->nvcpupids = 0; > > + /* Restore original domain def, so that changes on running domain def > + * will not be persistent across next boot. > + */ > if (vm->newDef) { > virDomainDefFree(vm->def); > vm->def = vm->newDef; > vm->def->id = -1; > vm->newDef = NULL; > + > + /* Now set domain def as not updated */ > + if (vm->updated) > + vm->updated = 0; > } > I think it would be a good idea to break out this whole if() block into a helper function, since similar changes are needed in LXC, UML, and test drivers. - Cole -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list