From 279fb823decd52cb40305f9a0420c4e9c7577e35 Mon Sep 17 00:00:00 2001 From: eabdullin Date: Wed, 17 Dec 2025 17:43:59 +0000 Subject: [PATCH] import UBI dracut-049-239.git20251127.el8_10 --- SOURCES/0237.patch | 53 +++++++++++++++++++++++++++++++++++++ SOURCES/0238.patch | 65 ++++++++++++++++++++++++++++++++++++++++++++++ SPECS/dracut.spec | 8 +++++- 3 files changed, 125 insertions(+), 1 deletion(-) create mode 100644 SOURCES/0237.patch create mode 100644 SOURCES/0238.patch diff --git a/SOURCES/0237.patch b/SOURCES/0237.patch new file mode 100644 index 0000000..1bfe2bc --- /dev/null +++ b/SOURCES/0237.patch @@ -0,0 +1,53 @@ +From 6654f9b7ca5dc00012cd7c4aa6dcf24611adab41 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-91319 +--- + modules.d/90multipath/multipathd-configure.service | 2 +- + modules.d/90multipath/multipathd.sh | 2 +- + 2 files changed, 2 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 b0183ffe..fc8f79f3 100755 +--- a/modules.d/90multipath/multipathd.sh ++++ b/modules.d/90multipath/multipathd.sh +@@ -2,7 +2,7 @@ + + 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 -d -n rd_NO_MULTIPATH && [ -e /etc/multipath.conf ]; then + diff --git a/SOURCES/0238.patch b/SOURCES/0238.patch new file mode 100644 index 0000000..77de34b --- /dev/null +++ b/SOURCES/0238.patch @@ -0,0 +1,65 @@ +From 4c9d4c3f773619a7730927f0e2e5ac0f7f53692f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=E2=80=9CMasahiro?= +Date: Fri, 3 Feb 2023 12:08:26 +0900 +Subject: [PATCH] fix(url-lib.sh): nfs_already_mounted() with trailing slash in + nfs path + +nfs_already_mounted() doesn't work when the installation ISO and kickstart file on a same NFS share are specified with inst.repo and inst.ks boot parameter as below. + + inst.repo=nfs:192.168.1.1:/home/data/rhel9.iso inst.ks=nfs:192.168.1.1:/home/data/ks.cfg + + NOTE: /home/data is configured for nfs share on 192.168.1.1 + +One problem is a file (not a directory) was passed into nfs_already_mounted(). +nfs_already_mounted() is the function to judge if the given directory is already mounted. +So, filepath should be passed in nfs_fetch_url(). + +The other problem is about the trailing slash in the nfs path in /proc/mounts. + +The /proc/mounts has an entry after nfs mount of inst.repo. + + 192.168.1.1:/data/ /run/install/isodir nfs ro,relatime, + +In this case, nfs_already_mounted() returns "/run/install/isodir//home/data/ks.cfg" wrongly. The following is from the log. + +[ 14.556279] localhost.localdomain dracut-initqueue[1282]: ///lib/url-lib.sh@156(nfs_fetch_url): nfs_already_mounted 192.168.122.1 /home/data/ks.cfg +[ 14.556279] localhost.localdomain dracut-initqueue[1282]: ///lib/url-lib.sh@137(nfs_already_mounted): local server=192.168.122.1 path=/home/data/ks.cfg s= p= +... +[ 14.654966] localhost.localdomain dracut-initqueue[1282]: ///lib/url-lib.sh@140(nfs_already_mounted): '[' 192.168.122.1 = 192.168.122.1 ']' +[ 14.654966] localhost.localdomain dracut-initqueue[1282]: ///lib/url-lib.sh@141(nfs_already_mounted): '[' /home/data/ks.cfg = /home/data/ ']' +[ 14.654966] localhost.localdomain dracut-initqueue[1282]: ///lib/url-lib.sh@143(nfs_already_mounted): str_starts /home/data/ks.cfg /home/data/ +[ 14.654966] localhost.localdomain dracut-initqueue[1282]: ///lib/dracut-lib.sh@51(str_starts): '[' ks.cfg '!=' /home/data/ks.cfg ']' +[ 14.654966] localhost.localdomain dracut-initqueue[1282]: ///lib/url-lib.sh@144(nfs_already_mounted): echo /run/install/isodir//home/data/ks.cfg +... +[ 14.658069] localhost.localdomain dracut-initqueue[934]: //lib/url-lib.sh@156(nfs_fetch_url): mntdir=/run/install/isodir//home/data/ks.cfg + +This function doesn't expect the trailiing slash of the nfs path in /proc/mounts, so it should be removed before processing it. + +(cherry picked from commit b731369c5fe7f9247337fe08017638a38f36cfca) + +Resolves: RHEL-108623 +--- + modules.d/45url-lib/url-lib.sh | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/modules.d/45url-lib/url-lib.sh b/modules.d/45url-lib/url-lib.sh +index 56d0d683..e7c0d563 100755 +--- a/modules.d/45url-lib/url-lib.sh ++++ b/modules.d/45url-lib/url-lib.sh +@@ -122,6 +122,7 @@ nfs_already_mounted() { + local server="$1" path="$2" localdir="" s="" p="" + cat /proc/mounts | while read src mnt rest || [ -n "$src" ]; do + splitsep ":" "$src" s p ++ p=${p%/} + if [ "$server" = "$s" ]; then + if [ "$path" = "$p" ]; then + echo $mnt +@@ -138,7 +139,7 @@ nfs_fetch_url() { + local filepath="${path%/*}" filename="${path##*/}" mntdir="" + + # skip mount if server:/filepath is already mounted +- mntdir=$(nfs_already_mounted "$server" "$path") ++ mntdir=$(nfs_already_mounted "$server" "$filepath") + if [ -z "$mntdir" ]; then + local mntdir="$(mkuniqdir /run nfs_mnt)" + mount_nfs "$nfs:$server:$filepath${options:+:$options}" "$mntdir" diff --git a/SPECS/dracut.spec b/SPECS/dracut.spec index 10c8b1a..747cba5 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 237.git20250603 +%define dist_free_release 239.git20251127 Name: dracut Version: 049 @@ -264,6 +264,8 @@ Patch233: 0233.patch Patch234: 0234.patch Patch235: 0235.patch Patch236: 0236.patch +Patch237: 0237.patch +Patch238: 0238.patch Source1: https://www.gnu.org/licenses/lgpl-2.1.txt @@ -720,6 +722,10 @@ echo '# Since rhel-8.3 dracut moved to use NetworkManager add_dracutmodules+=" network-legacy "' > /etc/dracut.conf.d/50-network-legacy.conf %changelog +* Thu Nov 27 2025 Pavel Valena - 049-239.git20251127 +- fix(multipath): disable user_friendly_names with mpathconf +- fix(url-lib.sh): nfs_already_mounted() with trailing slash in + * Wed Jun 04 2025 Pavel Valena - 049-237.git20250603 - fix(rescue): create hmac file for rescue kernel - fix(spec): drop %config from 50-network-legacy.conf