From 4cc4b62e305b1b02838a94f35830737b98444323 Mon Sep 17 00:00:00 2001 From: Laine Stump Date: Mon, 27 Feb 2012 22:43:23 -0500 Subject: [PATCH] qemu: fix cleanup of bridge during failure of qemuDomainAttachNetDevice 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 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 3dd7c0a9b9..ef8ec86a31 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); }