From f4e9ea879f38bea92069e9397028caa5d81e5aee Mon Sep 17 00:00:00 2001 From: Martin Wilck Date: Sat, 17 Sep 2022 23:05:39 +0200 Subject: [PATCH] fix(network): don't use same ifname multiple times If multiple ibft interfaces exist, set_ifname() may reuse the same name (usually "ibft0"), because it's usually called cmdline time, when no interfaces exist in sysfs yet. Remember the number used set and don't use it again. Reference:https://github.com/dracutdevs/dracut/commit/f4e9ea879f38bea92069e9397028caa5d81e5aee Conflict:NA --- modules.d/40network/net-lib.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh index a294a390..8b876926 100755 --- a/modules.d/40network/net-lib.sh +++ b/modules.d/40network/net-lib.sh @@ -222,6 +222,7 @@ set_ifname() { for n in $(getargs ifname=); do strstr "$n" "$mac" && echo "${n%%:*}" && return done + [ ! -f "/tmp/set_ifname_$name" ] || read -r num < "/tmp/set_ifname_$name" # otherwise, pick a new name and use that while :; do num=$((num + 1)) @@ -232,6 +233,7 @@ set_ifname() { break done echo "ifname=$name$num:$mac" >> /etc/cmdline.d/45-ifname.conf + echo "$num" > "/tmp/set_ifname_$name" echo "$name$num" } -- 2.23.0