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

Maxim Nestratov mnestratov at virtuozzo.com
Thu Jul 9 17:26:48 UTC 2015


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




More information about the libvir-list mailing list