[libvirt] [v2] qemu: Set domain def as updated and transient if changes
Osier Yang
jyang at redhat.com
Fri Dec 10 16:34:19 UTC 2010
于 2010年12月10日 22:42, Cole Robinson 写道:
> 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.
>
Yep, but I want it to be another patch, :-)
Thanks
- Osier
More information about the libvir-list
mailing list