]> git.proxmox.com Git - mirror_zfs.git/commitdiff
Fix for zfs-dracut regression
authordacianstremtan <35844628+dacianstremtan@users.noreply.github.com>
Tue, 1 Oct 2019 19:54:27 +0000 (15:54 -0400)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Tue, 1 Oct 2019 19:54:27 +0000 (12:54 -0700)
Line 31 and 32 overwrote the ${root} variable which broke mount-zfs.sh
We have create a new variable for the dataset instead of overwriting the
${root} variable in zfs-load-key.sh${root} variable in zfs-load-key.sh

Reviewed-by: Kash Pande <kash@tripleback.net>
Reviewed-by: Garrett Fields <ghfields@gmail.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Dacian Reece-Stremtan <dacianstremtan@gmail.com>
Closes #8913
Closes #9379

contrib/dracut/90zfs/zfs-load-key.sh.in

index 9e7adfc79786ba65ebbcad1ad67930037e2a90ab..42dc1d08f3d2b35466cb2083cebf36df4c858982 100755 (executable)
@@ -25,22 +25,23 @@ while true; do
 done
 
 # run this after import as zfs-import-cache/scan service is confirmed good
+# we do not overwrite the ${root} variable, but create a new one, BOOTFS, to hold the dataset
 if [ "${root}" = "zfs:AUTO" ] ; then
-    root="$(zpool list -H -o bootfs | awk '$1 != "-" {print; exit}')"
+    BOOTFS="$(zpool list -H -o bootfs | awk '$1 != "-" {print; exit}')"
 else
-    root="${root##zfs:}"
-    root="${root##ZFS=}"
+    BOOTFS="${root##zfs:}"
+    BOOTFS="${root##ZFS=}"
 fi
 
 # if pool encryption is active and the zfs command understands '-o encryption'
-if [ "$(zpool list -H -o feature@encryption $(echo "${root}" | awk -F\/ '{print $1}'))" = 'active' ]; then
+if [ "$(zpool list -H -o feature@encryption $(echo "${BOOTFS}" | awk -F\/ '{print $1}'))" = 'active' ]; then
     # if the root dataset has encryption enabled
-    ENCRYPTIONROOT=$(zfs get -H -o value encryptionroot "${root}")
+    ENCRYPTIONROOT=$(zfs get -H -o value encryptionroot "${BOOTFS}")
     if ! [ "${ENCRYPTIONROOT}" = "-" ]; then
         # decrypt them
         TRY_COUNT=5
         while [ $TRY_COUNT -gt 0 ]; do
-            systemd-ask-password "Encrypted ZFS password for ${root}" --no-tty | zfs load-key "${ENCRYPTIONROOT}" && break
+            systemd-ask-password "Encrypted ZFS password for ${BOOTFS}" --no-tty | zfs load-key "${ENCRYPTIONROOT}" && break
             TRY_COUNT=$((TRY_COUNT - 1))
         done
     fi