Combine and "clean up" a bit two places that are removing the vport Signed-off-by: John Ferlan <jferlan@xxxxxxxxxx> --- src/qemu/qemu_hotplug.c | 41 +++++++++++++++++++---------------------- 1 file changed, 19 insertions(+), 22 deletions(-) diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index a486fb4..1af85be 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -937,6 +937,23 @@ qemuDomainAttachDeviceDiskLive(virConnectPtr conn, } +static void +qemuDomainNetDeviceVportRemove(virDomainNetDefPtr net) +{ + virNetDevVPortProfilePtr vport = virDomainNetGetActualVirtPortProfile(net); + + if (!vport) + return; + + if (vport->virtPortType == VIR_NETDEV_VPORT_PROFILE_MIDONET) { + ignore_value(virNetDevMidonetUnbindPort(vport)); + } else if (vport->virtPortType == VIR_NETDEV_VPORT_PROFILE_OPENVSWITCH) { + const char *brname = virDomainNetGetActualBridgeName(net); + ignore_value(virNetDevOpenvswitchRemovePort(brname, net->ifname)); + } +} + + int qemuDomainAttachNetDevice(virQEMUDriverPtr driver, virDomainObjPtr vm, @@ -954,7 +971,6 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver, size_t queueSize = 0; char *nicstr = NULL; char *netstr = NULL; - virNetDevVPortProfilePtr vport = NULL; int ret = -1; int vlan; bool releaseaddr = false; @@ -1302,16 +1318,7 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver, cfg->stateDir)); } - vport = virDomainNetGetActualVirtPortProfile(net); - if (vport) { - if (vport->virtPortType == VIR_NETDEV_VPORT_PROFILE_MIDONET) { - ignore_value(virNetDevMidonetUnbindPort(vport)); - } else if (vport->virtPortType == VIR_NETDEV_VPORT_PROFILE_OPENVSWITCH) { - ignore_value(virNetDevOpenvswitchRemovePort( - virDomainNetGetActualBridgeName(net), - net->ifname)); - } - } + qemuDomainNetDeviceVportRemove(net); } virDomainNetRemoveHostdev(vm->def, net); @@ -3949,7 +3956,6 @@ qemuDomainRemoveNetDevice(virQEMUDriverPtr driver, { virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver); qemuDomainObjPrivatePtr priv = vm->privateData; - virNetDevVPortProfilePtr vport; virObjectEventPtr event; char *hostnet_name = NULL; char *charDevAlias = NULL; @@ -4038,16 +4044,7 @@ qemuDomainRemoveNetDevice(virQEMUDriverPtr driver, cfg->stateDir)); } - vport = virDomainNetGetActualVirtPortProfile(net); - if (vport) { - if (vport->virtPortType == VIR_NETDEV_VPORT_PROFILE_MIDONET) { - ignore_value(virNetDevMidonetUnbindPort(vport)); - } else if (vport->virtPortType == VIR_NETDEV_VPORT_PROFILE_OPENVSWITCH) { - ignore_value(virNetDevOpenvswitchRemovePort( - virDomainNetGetActualBridgeName(net), - net->ifname)); - } - } + qemuDomainNetDeviceVportRemove(net); networkReleaseActualDevice(vm->def, net); virDomainNetDefFree(net); -- 2.9.4 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list