From f6d908a2f3d249716a15b7beb488c5473bba780a Mon Sep 17 00:00:00 2001 From: Dmitry Guryanov Date: Thu, 9 Jul 2015 19:20:00 +0300 Subject: [PATCH] vz: fix cleanup of nets of bridged type 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 --- 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 a312990105..d1bc312cb2 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)))