[libvirt] [PATCH] qemu: fix cleanup of bridge during failure of qemuDomainAttachNetDevice

Laine Stump laine at laine.org
Sat Feb 25 23:40:07 UTC 2012


From: Laine Stump <laine at redhat.com>

In qemuDomainAttachNetDevice, the guest's tap interface has only been
attached to the bridge if iface_connected is true. It's possible for
an error to occur prior to that happening, and previously we would
attempt to remove the tap interface from the bridge even if it hadn't
been attached.
---
 src/qemu/qemu_hotplug.c |   11 ++++++-----
 1 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index e90ea6c..375b822 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -837,13 +837,14 @@ cleanup:
                                             net->info.addr.pci.slot) < 0)
             VIR_WARN("Unable to release PCI address on NIC");
 
-        if (iface_connected)
+        if (iface_connected) {
             virDomainConfNWFilterTeardown(net);
 
-        vport = virDomainNetGetActualVirtPortProfile(net);
-        if (vport && vport->virtPortType == VIR_NETDEV_VPORT_PROFILE_OPENVSWITCH)
-            ignore_value(virNetDevOpenvswitchRemovePort(
-                            virDomainNetGetActualBridgeName(net), net->ifname));
+            vport = virDomainNetGetActualVirtPortProfile(net);
+            if (vport && vport->virtPortType == VIR_NETDEV_VPORT_PROFILE_OPENVSWITCH)
+               ignore_value(virNetDevOpenvswitchRemovePort(
+                               virDomainNetGetActualBridgeName(net), net->ifname));
+        }
 
         networkReleaseActualDevice(net);
     }
-- 
1.7.7.6




More information about the libvir-list mailing list