[libvirt] [PATCH] conf: Assign newDef of active domain as persistent conf if it is NULL

Osier Yang jyang at redhat.com
Tue Sep 20 03:47:21 UTC 2011


于 2011年09月20日 04:58, Eric Blake 写道:
> On 09/01/2011 07:44 AM, Osier Yang wrote:
>> Libvirt loads the domain conf from status XML if it's running when
>> starting up. The problem is there is no record of the original conf.
>> (dom->newDef is NULL here).
>>
>> So libvirt won't be able to restore the domain conf to original one
>> when destroying/shutdown. E.g.
>>
>> 1) attach a device without "--persistent"
>> 2) restart libvirtd
>> 3) destroy domain
>> 4) start domain
>>
>> One will see the the disk still exists.
>>
>> This patch is to fix the peoblem by assigning persistent domain conf
>> to dom->newDef if it's NULL and the domain is running.
>
> I was hoping danpb would weigh in on this one, but it looks right to 
> me, definitely solves the test in your commit message, and is 
> appropriate for 0.9.5.
>
> ACK.
>
>> +++ b/src/conf/domain_conf.c
>> @@ -10533,9 +10533,15 @@ static virDomainObjPtr 
>> virDomainLoadConfig(virCapsPtr caps,
>> if ((dom = virDomainFindByUUID(doms, def->uuid))) {
>> dom->autostart = autostart;
>>
>> + if (virDomainObjIsActive(dom)&&
>> + !dom->newDef) {
>> + virDomainObjAssignDef(dom, def, false);
>> + } else {
>> + virDomainDefFree(def);
>> + }
>> +
>> VIR_FREE(configFile);
>> VIR_FREE(autostartLink);
>> - virDomainDefFree(def);
>> return dom;
>> }
>>
>

Pushed.

Osier




More information about the libvir-list mailing list