Combine and "clean up" a bit two places that are removing the vport
Signed-off-by: John Ferlan <jferlan@redhat.com>
---
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@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
On Wed, Jun 28, 2017 at 07:37:36 -0400, John Ferlan wrote:
> Combine and "clean up" a bit two places that are removing the vport
>
> Signed-off-by: John Ferlan <jferlan@redhat.com>
> ---
> 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);
Declare this variable at the top level along with vport.
> + ignore_value(virNetDevOpenvswitchRemovePort(brname, net->ifname));
> + }
> +}
ACK
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
© 2016 - 2025 Red Hat, Inc.