Re: [PATCHv2 7/6] net: Mark network persistent when assigning persistent definition

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 11/01/2012 11:25 AM, Eric Blake wrote:
> On 10/29/2012 03:35 AM, Peter Krempa wrote:
>> When assigning the new persistent definition for a transient network
>> (thus making it persistent) the network needs to be marked persistent
>> before actually atempting to assign the definition.
>> ---
>>  src/network/bridge_driver.c | 16 +++++++++++-----
>>  1 file changed, 11 insertions(+), 5 deletions(-)
> You might want to get Laine's opinion as well, but I think this is a
> candidate for 1.0.0, and looks right to me.

Transient networks have never worked very well (mainly because nobody
has ever used them) and the other patches in this series (plus more) are
needed to make them work properly, so I think it makes more sense to
save them all until after 1.0 is released.

>
> ACK.
>
>> diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
>> index 22bd99b..643b00c 100644
>> --- a/src/network/bridge_driver.c
>> +++ b/src/network/bridge_driver.c
>> @@ -2820,7 +2820,7 @@ cleanup:
>>
>>  static virNetworkPtr networkDefine(virConnectPtr conn, const char *xml) {
>>      struct network_driver *driver = conn->networkPrivateData;
>> -    virNetworkDefPtr def;
>> +    virNetworkDefPtr def = NULL;
>>      bool freeDef = true;
>>      virNetworkObjPtr network = NULL;
>>      virNetworkPtr ret = NULL;
>> @@ -2833,11 +2833,17 @@ static virNetworkPtr networkDefine(virConnectPtr conn, const char *xml) {
>>      if (networkValidate(driver, def, false) < 0)
>>         goto cleanup;
>>
>> -    if (!(network = virNetworkAssignDef(&driver->networks, def, false)))
>> -        goto cleanup;
>> -    freeDef = false;
>> +    if ((network = virNetworkFindByName(&driver->networks, def->name))) {
>> +        network->persistent = 1;
>> +        if (virNetworkObjAssignDef(network, def, false) < 0)
>> +            goto cleanup;
>> +    } else {
>> +        if (!(network = virNetworkAssignDef(&driver->networks, def, false)))
>> +            goto cleanup;
>> +    }
>>
>> -    network->persistent = 1;
>> +    /* def was asigned */
>> +    freeDef = false;
>>
>>      if (virNetworkSaveConfig(driver->networkConfigDir, def) < 0) {
>>          virNetworkRemoveInactive(&driver->networks, network);
>>
>
>
> --
> libvir-list mailing list
> libvir-list@xxxxxxxxxx
> https://www.redhat.com/mailman/listinfo/libvir-list

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list


[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]