[libvirt] [PATCH] vz: fix cleanup of nets of bridged type

Dmitry Guryanov dguryanov at parallels.com
Fri Jul 10 14:21:10 UTC 2015


On 07/09/2015 08:26 PM, Maxim Nestratov wrote:
> 09.07.2015 19:20, Dmitry Guryanov пишет:
>> We create a virtual network of special type, which
>> has the same name as bridge name to create bridged
>> network adapter in vz. So when we delete such an
>> adapter we have to remove corresponding virtual
>> network.
>>
>> So let's rename prlsdkDelNet to prlsdkCleanupBridgedNet
>> and don't check for return value.
>>
>> Signed-off-by: Dmitry Guryanov <dguryanov at parallels.com>
>> ---
>>   src/vz/vz_sdk.c | 25 ++++++++-----------------
>>   1 file changed, 8 insertions(+), 17 deletions(-)
>>
>> diff --git a/src/vz/vz_sdk.c b/src/vz/vz_sdk.c
>> index a312990..d1bc312 100644
>> --- a/src/vz/vz_sdk.c
>> +++ b/src/vz/vz_sdk.c
>> @@ -2986,20 +2986,15 @@ static int prlsdkAddNet(PRL_HANDLE sdkdom,
>>       return ret;
>>   }
>>   -static int
>> -prlsdkDelNet(vzConnPtr privconn, virDomainNetDefPtr net)
>> +static void
>> +prlsdkCleanupBridgedNet(vzConnPtr privconn, virDomainNetDefPtr net)
>>   {
>> -    int ret = -1;
>>       PRL_RESULT pret;
>>       PRL_HANDLE vnet = PRL_INVALID_HANDLE;
>>       PRL_HANDLE job = PRL_INVALID_HANDLE;
>>   -    if (net->type != VIR_DOMAIN_NET_TYPE_BRIDGE) {
>> -        virReportError(VIR_ERR_OPERATION_UNSUPPORTED,
>> -                       _("unplugging network device of type %s is 
>> not supported"),
>> -                       virDomainNetTypeToString(net->type));
>> -        return ret;
>> -    }
>> +    if (net->type != VIR_DOMAIN_NET_TYPE_BRIDGE)
>> +        return;
>>         pret = PrlVirtNet_Create(&vnet);
>>       prlsdkCheckRetGoto(pret, cleanup);
>> @@ -3011,11 +3006,8 @@ prlsdkDelNet(vzConnPtr privconn, 
>> virDomainNetDefPtr net)
>>       if (PRL_FAILED(pret = waitJob(job)))
>>           goto cleanup;
>>   -    ret = 0;
>> -
>>    cleanup:
>>       PrlHandle_Free(vnet);
>> -    return ret;
>>   }
>>     int prlsdkAttachNet(virDomainObjPtr dom,
>> @@ -3107,8 +3099,7 @@ int prlsdkDetachNet(virDomainObjPtr dom,
>>       if (sdknet == PRL_INVALID_HANDLE)
>>           goto cleanup;
>>   -    if (prlsdkDelNet(privconn, net) < 0)
>> -        goto cleanup;
>> +    prlsdkCleanupBridgedNet(privconn, net);
>>         pret = PrlVmDev_Remove(sdknet);
>>       prlsdkCheckRetGoto(pret, cleanup);
>> @@ -3530,7 +3521,7 @@ prlsdkDoApplyConfig(virConnectPtr conn,
>>         if (olddef) {
>>           for (i = 0; i < olddef->nnets; i++)
>> -            prlsdkDelNet(conn->privateData, olddef->nets[i]);
>> +            prlsdkCleanupBridgedNet(conn->privateData, 
>> olddef->nets[i]);
>>       }
>>         for (i = 0; i < def->nnets; i++) {
>> @@ -3575,7 +3566,7 @@ prlsdkDoApplyConfig(virConnectPtr conn,
>>       VIR_FREE(mask);
>>         for (i = 0; i < def->nnets; i++)
>> -        prlsdkDelNet(conn->privateData, def->nets[i]);
>> +        prlsdkCleanupBridgedNet(conn->privateData, def->nets[i]);
>>         return -1;
>>   }
>> @@ -3722,7 +3713,7 @@ prlsdkUnregisterDomain(vzConnPtr privconn, 
>> virDomainObjPtr dom)
>>       size_t i;
>>         for (i = 0; i < dom->def->nnets; i++)
>> -        prlsdkDelNet(privconn, dom->def->nets[i]);
>> +        prlsdkCleanupBridgedNet(privconn, dom->def->nets[i]);
>>         job = PrlVm_Unreg(privdom->sdkdom);
>>       if (PRL_FAILED(waitJob(job)))
> ACK. Looks better

Thanks, Pushed.




More information about the libvir-list mailing list