diff options
author | Ryan Moeller <[email protected]> | 2022-12-12 13:23:06 -0500 |
---|---|---|
committer | GitHub <[email protected]> | 2022-12-12 10:23:06 -0800 |
commit | 786ff6a6cb33226b4f4292c7569b9093286f74d9 (patch) | |
tree | 66592fc9082bc1815951cdd2766606a4cf8de4ad /contrib/initramfs/scripts/zfs | |
parent | e3785718bac2ee21664ad6a2b7b503f82f533425 (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/zfs | 20 |
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 |