summaryrefslogtreecommitdiff
path: root/sys-fs/zfs-utils/files/2.1.5-r2-dracut-non-root.patch
blob: a9c6130f5b0019de0b3842df8b9529c9b466a359 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
https://github.com/openzfs/zfs/commit/eefe83eaa68f7cb4a49c580dd940d3688e42c849
https://bugs.gentoo.org/854333

From eefe83eaa68f7cb4a49c580dd940d3688e42c849 Mon Sep 17 00:00:00 2001
From: Toyam Cox <aviator45003@gmail.com>
Date: Thu, 30 Jun 2022 13:47:58 -0400
Subject: [PATCH] dracut: fix boot on non-zfs-root systems

Simply prevent overwriting root until it needs to be overwritten.

Dracut could change this value before this module is called, but won't
change the kernel command line.

Reviewed-by: Andrew J. Hesford <ajh@sideband.org>
Signed-off-by: Toyam Cox <vaelatern@voidlinux.org>
Closes #13592
---
 contrib/dracut/90zfs/zfs-lib.sh.in | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/contrib/dracut/90zfs/zfs-lib.sh.in b/contrib/dracut/90zfs/zfs-lib.sh.in
index e44673c2d75..3a43e514d6f 100755
--- a/contrib/dracut/90zfs/zfs-lib.sh.in
+++ b/contrib/dracut/90zfs/zfs-lib.sh.in
@@ -88,11 +88,11 @@ decode_root_args() {
         return
     fi
 
-    root=$(getarg root=)
+    xroot=$(getarg root=)
     rootfstype=$(getarg rootfstype=)
 
     # shellcheck disable=SC2249
-    case "$root" in
+    case "$xroot" in
         ""|zfs|zfs:|zfs:AUTO)
             root=zfs:AUTO
             rootfstype=zfs
@@ -100,7 +100,7 @@ decode_root_args() {
             ;;
 
         ZFS=*|zfs:*)
-            root="${root#zfs:}"
+            root="${xroot#zfs:}"
             root="${root#ZFS=}"
             root=$(echo "$root" | tr '+' ' ')
             rootfstype=zfs
@@ -109,9 +109,9 @@ decode_root_args() {
     esac
 
     if [ "$rootfstype" = "zfs" ]; then
-        case "$root" in
+        case "$xroot" in
             "") root=zfs:AUTO ;;
-            *)  root=$(echo "$root" | tr '+' ' ') ;;
+            *)  root=$(echo "$xroot" | tr '+' ' ') ;;
         esac
         return 0
     fi