File 0104-initrd-skip-NBFT-parsing-when-already-defined-on-the.patch of Package NetworkManager

From 477981b05f88943aaeab3bdb8a1974e5d2afc9ad Mon Sep 17 00:00:00 2001
From: Tomas Bzatek <tbzatek@redhat.com>
Date: Tue, 15 Apr 2025 15:43:19 +0200
Subject: [PATCH 104/106] initrd: skip NBFT parsing when already defined on the
 cmdline

Skip the internal NBFT table parsing when nbft interfaces
are already defined on the cmdline, e.g. from the original
95nvmf dracut module.

Signed-off-by: Tomas Bzatek <tbzatek@redhat.com>
---
 src/nm-initrd-generator/nmi-cmdline-reader.c | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/src/nm-initrd-generator/nmi-cmdline-reader.c b/src/nm-initrd-generator/nmi-cmdline-reader.c
index d7fd866..a6cd30f 100644
--- a/src/nm-initrd-generator/nmi-cmdline-reader.c
+++ b/src/nm-initrd-generator/nmi-cmdline-reader.c
@@ -1451,9 +1451,10 @@ nmi_cmdline_reader_parse(const char        *etc_connections_dir,
     gs_unref_ptrarray GPtrArray *routes        = NULL;
     gs_unref_ptrarray GPtrArray *znets         = NULL;
     int                          i;
-    guint64                      dhcp_timeout   = 90;
-    guint64                      dhcp_num_tries = 1;
-    gboolean                     nvmf_nonbft    = FALSE;
+    guint64                      dhcp_timeout     = 90;
+    guint64                      dhcp_num_tries   = 1;
+    gboolean                     nvmf_nonbft      = FALSE;
+    gboolean                     have_dracut_nbft = FALSE;
 
     reader = reader_new();
 
@@ -1470,7 +1471,10 @@ nmi_cmdline_reader_parse(const char        *etc_connections_dir,
             /* pass */
         } else if (nm_streq(tag, "net.ifnames"))
             net_ifnames = !nm_streq(argument, "0");
-        else if (nm_streq(tag, "rd.peerdns"))
+        else if (nm_streq(tag, "ifname")) {
+            if (NM_STR_HAS_PREFIX(argument, "nbft"))
+                have_dracut_nbft = TRUE;
+        } else if (nm_streq(tag, "rd.peerdns"))
             reader->ignore_auto_dns = !_nm_utils_ascii_str_to_bool(argument, TRUE);
         else if (nm_streq(tag, "rd.net.timeout.dhcp")) {
             if (nm_streq0(argument, "infinity")) {
@@ -1566,7 +1570,7 @@ nmi_cmdline_reader_parse(const char        *etc_connections_dir,
             nvmf_nonbft = TRUE;
     }
 
-    if (!nvmf_nonbft) {
+    if (!nvmf_nonbft && !have_dracut_nbft) {
         NMConnection **nbft_connections, **c;
 
         nbft_connections = nmi_nbft_reader_parse(sysfs_dir, &reader->hostname);
-- 
2.49.0

openSUSE Build Service is sponsored by