Blame SOURCES/1003-fix-ovsdb-removal-ports-rhbz1935026.patch

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