Blame SOURCES/0563-network-skip-already-enslaved-interfaces.patch

18971c
From e8a7c2a15215f73fff10358af7d9ecd0ab7b597f Mon Sep 17 00:00:00 2001
18971c
From: Harald Hoyer <harald@redhat.com>
18971c
Date: Tue, 21 Aug 2018 13:14:44 +0200
18971c
Subject: [PATCH] network: skip already enslaved interfaces
18971c
18971c
---
18971c
 modules.d/40network/ifup.sh    | 11 +++++++----
18971c
 modules.d/40network/net-lib.sh |  7 +++++++
18971c
 2 files changed, 14 insertions(+), 4 deletions(-)
18971c
18971c
diff --git a/modules.d/40network/ifup.sh b/modules.d/40network/ifup.sh
18971c
index b3631648..181ab67c 100755
18971c
--- a/modules.d/40network/ifup.sh
18971c
+++ b/modules.d/40network/ifup.sh
18971c
@@ -377,10 +377,13 @@ for p in $(getargs ip=); do
18971c
     esac
18971c
 
18971c
     # If this option isn't directed at our interface, skip it
18971c
-    [ -n "$dev" ] && [ "$dev" != "$netif" ] && \
18971c
-    [ "$use_bridge" != 'true' ] && \
18971c
-    [ "$use_vlan" != 'true' ] && continue
18971c
-
18971c
+    if [ -n "$dev" ]; then
18971c
+        [ "$dev" != "$netif" ] && \
18971c
+        [ "$use_bridge" != 'true' ] && \
18971c
+        [ "$use_vlan" != 'true' ] && continue
18971c
+    else
18971c
+        iface_is_enslaved "$netif" && continue
18971c
+    fi
18971c
     # Store config for later use
18971c
     for i in ip srv gw mask hostname macaddr mtu dns1 dns2; do
18971c
         eval '[ "$'$i'" ] && echo '$i'="$'$i'"'
18971c
diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh
18971c
index 9e87aeab..35e6e833 100755
18971c
--- a/modules.d/40network/net-lib.sh
18971c
+++ b/modules.d/40network/net-lib.sh
18971c
@@ -731,6 +731,13 @@ iface_has_link() {
18971c
     iface_has_carrier "$@"
18971c
 }
18971c
 
18971c
+iface_is_enslaved() {
18971c
+    local _li
18971c
+    _li=$(ip -o link show dev $1)
18971c
+    strstr "$li" " master " || return 1
18971c
+    return 0
18971c
+}
18971c
+
18971c
 find_iface_with_link() {
18971c
     local iface_path="" iface=""
18971c
     for iface_path in /sys/class/net/*; do