]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
fix(usrmount): do not empty _dev variable
authorAlexander Tsoy <alexander@tsoy.me>
Mon, 16 Aug 2021 15:54:34 +0000 (18:54 +0300)
committerJóhann B. Guðmundsson <johannbg@gmail.com>
Tue, 17 Aug 2021 07:48:15 +0000 (07:48 +0000)
Currently $_dev is always overridden with the value returned by
label_uuid_to_dev(). This results in an empty value if $_dev is a
device path. Fix this by calling label_uuid_to_dev() conditionally.

Bug: https://bugs.gentoo.org/807971
Fixes: d3532978de04c78f53664dad7b37705a49a7ee54
modules.d/98usrmount/mount-usr.sh

index 23ed06aa2ef1ec09b6f7199a07b69de3606c0980..c8e1893b5b98e744167d2410db534b12151af916 100755 (executable)
@@ -55,7 +55,12 @@ mount_usr() {
     while read -r _dev _mp _fs _opts _freq _passno || [ -n "$_dev" ]; do
         [ "${_dev%%#*}" != "$_dev" ] && continue
         if [ "$_mp" = "/usr" ]; then
-            _dev="$(label_uuid_to_dev "$_dev")"
+            case "$_dev" in
+                LABEL=* | UUID=* | PARTUUID=* | PARTLABEL=*)
+                    _dev="$(label_uuid_to_dev "$_dev")"
+                    ;;
+                *) ;;
+            esac
 
             if strstr "$_opts" "subvol=" \
                 && [ "${root#block:}" -ef "$_dev" ] \