[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