|
|
471b5b |
From 482f9671c69800de2077d2dab9352a9b385115d3 Mon Sep 17 00:00:00 2001
|
|
|
471b5b |
From: Lubomir Rintel <lkundrak@v3.sk>
|
|
|
471b5b |
Date: Tue, 22 Feb 2022 16:18:40 +0100
|
|
|
471b5b |
Subject: [PATCH] ovs-port: fix removal of ovsdb entry if the interface goes
|
|
|
471b5b |
away
|
|
|
471b5b |
|
|
|
471b5b |
Hope third time is the charm.
|
|
|
471b5b |
|
|
|
471b5b |
The idea here is to remove the OVSDB entry if the device actually went away
|
|
|
471b5b |
violently (like, the it was actually removed from the platform), but keep it if
|
|
|
471b5b |
we're shutting down.
|
|
|
471b5b |
|
|
|
471b5b |
Fixes-test: @ovs_nmstate
|
|
|
471b5b |
Fixes: 966413e78f14 ('ovs-port: avoid removing the OVSDB entry if we're shutting down')
|
|
|
471b5b |
Fixes: ecc73eb239e6 ('ovs-port: always remove the OVSDB entry on slave release')
|
|
|
471b5b |
|
|
|
471b5b |
https://bugzilla.redhat.com/show_bug.cgi?id=2055665
|
|
|
471b5b |
(cherry picked from commit 65fdfb25006acc3c67059792579dd7a770d04768)
|
|
|
471b5b |
(cherry picked from commit fee7328c86e5fe8171f8382492f147e7d263891b)
|
|
|
471b5b |
---
|
|
|
471b5b |
src/core/devices/ovs/nm-device-ovs-port.c | 8 +++++---
|
|
|
471b5b |
1 file changed, 5 insertions(+), 3 deletions(-)
|
|
|
471b5b |
|
|
|
471b5b |
diff --git a/src/core/devices/ovs/nm-device-ovs-port.c b/src/core/devices/ovs/nm-device-ovs-port.c
|
|
|
471b5b |
index 8406c3648cef..116f58c43ace 100644
|
|
|
471b5b |
--- a/src/core/devices/ovs/nm-device-ovs-port.c
|
|
|
471b5b |
+++ b/src/core/devices/ovs/nm-device-ovs-port.c
|
|
|
471b5b |
@@ -188,8 +188,10 @@ del_iface_cb(GError *error, gpointer user_data)
|
|
|
471b5b |
static void
|
|
|
471b5b |
release_slave(NMDevice *device, NMDevice *slave, gboolean configure)
|
|
|
471b5b |
{
|
|
|
471b5b |
- NMDeviceOvsPort *self = NM_DEVICE_OVS_PORT(device);
|
|
|
471b5b |
- bool slave_removed = nm_device_sys_iface_state_get(slave) == NM_DEVICE_SYS_IFACE_STATE_REMOVED;
|
|
|
471b5b |
+ NMDeviceOvsPort *self = NM_DEVICE_OVS_PORT(device);
|
|
|
471b5b |
+ bool slave_not_managed = !NM_IN_SET(nm_device_sys_iface_state_get(slave),
|
|
|
471b5b |
+ NM_DEVICE_SYS_IFACE_STATE_MANAGED,
|
|
|
471b5b |
+ NM_DEVICE_SYS_IFACE_STATE_ASSUME);
|
|
|
471b5b |
|
|
|
471b5b |
_LOGI(LOGD_DEVICE, "releasing ovs interface %s", nm_device_get_ip_iface(slave));
|
|
|
471b5b |
|
|
|
471b5b |
@@ -197,7 +199,7 @@ release_slave(NMDevice *device, NMDevice *slave, gboolean configure)
|
|
|
471b5b |
* removed and thus we're called with configure=FALSE), we still need
|
|
|
471b5b |
* to make sure its OVSDB entry is gone.
|
|
|
471b5b |
*/
|
|
|
471b5b |
- if (configure || slave_removed) {
|
|
|
471b5b |
+ if (configure || slave_not_managed) {
|
|
|
471b5b |
nm_ovsdb_del_interface(nm_ovsdb_get(),
|
|
|
471b5b |
nm_device_get_iface(slave),
|
|
|
471b5b |
del_iface_cb,
|
|
|
471b5b |
--
|
|
|
471b5b |
2.35.1
|
|
|
471b5b |
|