aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/initramfs/scripts/zfs
diff options
context:
space:
mode:
authorRyan Moeller <[email protected]>2022-12-12 13:23:06 -0500
committerGitHub <[email protected]>2022-12-12 10:23:06 -0800
commit786ff6a6cb33226b4f4292c7569b9093286f74d9 (patch)
tree66592fc9082bc1815951cdd2766606a4cf8de4ad /contrib/initramfs/scripts/zfs
parente3785718bac2ee21664ad6a2b7b503f82f533425 (diff)
initramfs: Fix legacy mountpoint rootfs
Legacy mountpoint datasets should not pass `-o zfsutil` to `mount.zfs`. Fix the logic in `mount_fs()` to not forget we have a legacy mountpoint when checking for an `org.zol:mountpoint` userprop. Reviewed-by: Richard Yao <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Ryan Moeller <[email protected]> Closes #14274
Diffstat (limited to 'contrib/initramfs/scripts/zfs')
-rw-r--r--contrib/initramfs/scripts/zfs20
1 files changed, 8 insertions, 12 deletions
diff --git a/contrib/initramfs/scripts/zfs b/contrib/initramfs/scripts/zfs
index 587dd5eba..20fea8c34 100644
--- a/contrib/initramfs/scripts/zfs
+++ b/contrib/initramfs/scripts/zfs
@@ -333,25 +333,21 @@ mount_fs()
# Can't use the mountpoint property. Might be one of our
# clones. Check the 'org.zol:mountpoint' property set in
# clone_snap() if that's usable.
- mountpoint=$(get_fs_value "$fs" org.zol:mountpoint)
- if [ "$mountpoint" = "legacy" ] ||
- [ "$mountpoint" = "none" ] ||
- [ "$mountpoint" = "-" ]
+ mountpoint1=$(get_fs_value "$fs" org.zol:mountpoint)
+ if [ "$mountpoint1" = "legacy" ] ||
+ [ "$mountpoint1" = "none" ] ||
+ [ "$mountpoint1" = "-" ]
then
if [ "$fs" != "${ZFS_BOOTFS}" ]; then
# We don't have a proper mountpoint and this
# isn't the root fs.
return 0
- else
- # Last hail-mary: Hope 'rootmnt' is set!
- mountpoint=""
fi
- fi
-
- # If it's not a legacy filesystem, it can only be a
- # native one...
- if [ "$mountpoint" = "legacy" ]; then
ZFS_CMD="mount.zfs"
+ # Last hail-mary: Hope 'rootmnt' is set!
+ mountpoint=""
+ else
+ mountpoint="$mountpoint1"
fi
fi