diff --git a/SOURCES/0096.patch b/SOURCES/0096.patch new file mode 100644 index 0000000..5ace27f --- /dev/null +++ b/SOURCES/0096.patch @@ -0,0 +1,56 @@ +From f7e5515272ec62735a283addc642a3930ee5e943 Mon Sep 17 00:00:00 2001 +From: Antonio Alvarez Feijoo +Date: Mon, 3 Mar 2025 15:22:14 +0100 +Subject: [PATCH] chore(multipath): remove `rd_NO_MULTIPATH` kernel command + line option + +Deprecated since 778b3543609d8c9d32df7111229f4072d00d02f0 (Nov 25, 2014). + +(cherry picked from commit 954420374a63be32f6ece5fc1476ba18163da1f7) + +Related: RHEL-109565 +--- + man/dracut.cmdline.7.asc | 2 -- + modules.d/90multipath/multipathd.service | 1 - + modules.d/90multipath/multipathd.sh | 2 +- + 3 files changed, 1 insertion(+), 4 deletions(-) + +diff --git a/man/dracut.cmdline.7.asc b/man/dracut.cmdline.7.asc +index abe1ec3f..697f81d9 100644 +--- a/man/dracut.cmdline.7.asc ++++ b/man/dracut.cmdline.7.asc +@@ -1383,8 +1383,6 @@ rd_NO_MD:: rd.md=0 + + rd_MD_UUID:: rd.md.uuid + +-rd_NO_MULTIPATH: rd.multipath=0 +- + rd_NFS_DOMAIN:: rd.nfs.domain + + iscsi_initiator:: rd.iscsi.initiator +diff --git a/modules.d/90multipath/multipathd.service b/modules.d/90multipath/multipathd.service +index e8182533..1ff7201a 100644 +--- a/modules.d/90multipath/multipathd.service ++++ b/modules.d/90multipath/multipathd.service +@@ -11,7 +11,6 @@ Conflicts=shutdown.target + Conflicts=initrd-cleanup.service + ConditionKernelCommandLine=!nompath + ConditionKernelCommandLine=!rd.multipath=0 +-ConditionKernelCommandLine=!rd_NO_MULTIPATH + ConditionKernelCommandLine=!multipath=off + ConditionVirtualization=!container + +diff --git a/modules.d/90multipath/multipathd.sh b/modules.d/90multipath/multipathd.sh +index 385a95fb..62649003 100755 +--- a/modules.d/90multipath/multipathd.sh ++++ b/modules.d/90multipath/multipathd.sh +@@ -5,7 +5,7 @@ if [ "$(getarg rd.multipath)" = "default" ] && [ ! -e /etc/multipath.conf ]; the + mpathconf --enable + fi + +-if getargbool 1 rd.multipath -d -n rd_NO_MULTIPATH && [ -e /etc/multipath.conf ]; then ++if getargbool 1 rd.multipath && [ -e /etc/multipath.conf ]; then + modprobe dm-multipath + multipathd -B || multipathd + need_shutdown + diff --git a/SOURCES/0097.patch b/SOURCES/0097.patch new file mode 100644 index 0000000..fc534fb --- /dev/null +++ b/SOURCES/0097.patch @@ -0,0 +1,46 @@ +From b0c8aaecda1d62aa925d70fcadc071e9c85c2621 Mon Sep 17 00:00:00 2001 +From: Antonio Alvarez Feijoo +Date: Mon, 3 Mar 2025 15:23:41 +0100 +Subject: [PATCH] refactor(multipath): remove custom multipathd.service + +Install `multipathd.service` provided by upstream, and add a dropin to support +`rd.multipath=0`. + +(cherry picked from commit bb343fa83de4c73890e9054329249a1491733a5c) + +Resolves: RHEL-109565 +--- + modules.d/90multipath/module-setup.sh | 3 ++- + modules.d/90multipath/multipathd-dracut.conf | 2 ++ + 2 files changed, 4 insertions(+), 1 deletion(-) + +diff --git a/modules.d/90multipath/module-setup.sh b/modules.d/90multipath/module-setup.sh +index 541e243a..2f4ac869 100755 +--- a/modules.d/90multipath/module-setup.sh ++++ b/modules.d/90multipath/module-setup.sh +@@ -90,6 +90,7 @@ install() { + [[ -d $config_dir ]] || config_dir=/etc/multipath/conf.d + + inst_multiple \ ++ "$systemdsystemunitdir"/multipathd.service \ + pkill \ + pidof \ + kpartx \ +@@ -137,7 +138,7 @@ install() { + inst_simple "${moddir}/multipathd-configure.service" "${systemdsystemunitdir}/multipathd-configure.service" + $SYSTEMCTL -q --root "$initdir" enable multipathd-configure.service + fi +- inst_simple "${moddir}/multipathd.service" "${systemdsystemunitdir}/multipathd.service" ++ inst_simple "$moddir/multipathd-dracut.conf" "$systemdsystemunitdir/multipathd.service.d/multipathd-dracut.conf" + $SYSTEMCTL -q --root "$initdir" enable multipathd.service + else + inst_hook pre-trigger 02 "$moddir/multipathd.sh" +diff --git a/modules.d/90multipath/multipathd-dracut.conf b/modules.d/90multipath/multipathd-dracut.conf +new file mode 100644 +index 00000000..783b05d5 +--- /dev/null ++++ b/modules.d/90multipath/multipathd-dracut.conf +@@ -0,0 +1,2 @@ ++[Unit] ++ConditionKernelCommandLine=!rd.multipath=0 + diff --git a/SOURCES/0102.patch b/SOURCES/0102.patch new file mode 100644 index 0000000..9dc537a --- /dev/null +++ b/SOURCES/0102.patch @@ -0,0 +1,54 @@ +From ae61b2c93a032c3e74950d6730d32363fed9621f Mon Sep 17 00:00:00 2001 +From: Benjamin Marzinski +Date: Thu, 24 Apr 2025 17:51:01 -0400 +Subject: [PATCH] fix(multipath): disable user_friendly_names with mpathconf + +If dracut is creating /etc/multipath.conf by calling mpathconf in either +multipathd-configure.service or multipathd.sh, there is a chance that +the multipath config in the real root differs. Specifically, it might +have chosen different user_friendly_names for the devices. When the +systems switches to the real root, multipath may not be able to switch +the devices to their configured names because those might already be +in use. To avoid this, call mpathconf with "--user_friendly_names n" +to create a multipath.conf with user_friendly_names disabled. If all +devices use WWID names, it is always possible for multipath to rename +them later. + +Fixes b8a92b715 ("multipath: add automatic configuration for multipath") + +(cherry picked from commit f36f2869859eb5f9613a94a28dfaf31505e645cc) + +Resolves: RHEL-96101 +--- + modules.d/90multipath/multipathd-configure.service | 2 +- + modules.d/90multipath/multipathd.sh | 3 ++- + 2 files changed, 3 insertions(+), 2 deletions(-) + +diff --git a/modules.d/90multipath/multipathd-configure.service b/modules.d/90multipath/multipathd-configure.service +index de690615..6dedd9b9 100644 +--- a/modules.d/90multipath/multipathd-configure.service ++++ b/modules.d/90multipath/multipathd-configure.service +@@ -13,7 +13,7 @@ ConditionPathExists=!/etc/multipath.conf + [Service] + Type=oneshot + ExecStartPre=-/usr/bin/mkdir -p /etc/multipath/multipath.conf.d +-ExecStart=/usr/sbin/mpathconf --enable ++ExecStart=/usr/sbin/mpathconf --enable --user_friendly_names n + + [Install] + WantedBy=sysinit.target +diff --git a/modules.d/90multipath/multipathd.sh b/modules.d/90multipath/multipathd.sh +index 62649003..6b6b2666 100755 +--- a/modules.d/90multipath/multipathd.sh ++++ b/modules.d/90multipath/multipathd.sh +@@ -2,7 +2,8 @@ + + if [ "$(getarg rd.multipath)" = "default" ] && [ ! -e /etc/multipath.conf ]; then + mkdir -p /etc/multipath/multipath.conf.d +- mpathconf --enable ++ mpathconf --enable --user_friendly_names n ++ + fi + + if getargbool 1 rd.multipath && [ -e /etc/multipath.conf ]; then + diff --git a/SPECS/dracut.spec b/SPECS/dracut.spec index 4f0416e..8e7da73 100644 --- a/SPECS/dracut.spec +++ b/SPECS/dracut.spec @@ -5,7 +5,7 @@ # strip the automatically generated dep here and instead co-own the # directory. %global __requires_exclude pkg-config -%define dist_free_release 88.git20250311 +%define dist_free_release 89.git20250311 Name: dracut Version: 057 @@ -117,6 +117,11 @@ Patch85: 0085.patch Patch86: 0086.patch Patch89: 0089.patch +Patch96: 0096.patch +Patch97: 0097.patch + +Patch102: 0102.patch + Source1: https://www.gnu.org/licenses/lgpl-2.1.txt BuildRequires: bash @@ -572,6 +577,13 @@ echo 'dracut_rescue_image="yes"' > $RPM_BUILD_ROOT%{dracutlibdir}/dracut.conf.d/ %{_prefix}/lib/kernel/install.d/51-dracut-rescue.install %changelog +* Fri Sep 19 2025 Pavel Valena - 057-89.git20250311 +- chore(multipath): remove `rd_NO_MULTIPATH` kernel command +- refactor(multipath): remove custom multipathd.service +- fix(multipath): disable user_friendly_names with mpathconf + Resolves: RHEL-109565 + Resolves: RHEL-96101 + * Mon Jun 09 2025 Pavel Valena - 057-88.git20250311 - fix(dracut.sh): don't pass empty string as dir