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 <ryao@gentoo.org>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ryan Moeller <ryan@iXsystems.com>
Closes #14274
This commit is contained in:
Ryan Moeller 2022-12-12 13:23:06 -05:00 committed by GitHub
parent e3785718ba
commit 786ff6a6cb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 8 additions and 12 deletions

View File

@ -333,25 +333,21 @@ mount_fs()
# Can't use the mountpoint property. Might be one of our # Can't use the mountpoint property. Might be one of our
# clones. Check the 'org.zol:mountpoint' property set in # clones. Check the 'org.zol:mountpoint' property set in
# clone_snap() if that's usable. # clone_snap() if that's usable.
mountpoint=$(get_fs_value "$fs" org.zol:mountpoint) mountpoint1=$(get_fs_value "$fs" org.zol:mountpoint)
if [ "$mountpoint" = "legacy" ] || if [ "$mountpoint1" = "legacy" ] ||
[ "$mountpoint" = "none" ] || [ "$mountpoint1" = "none" ] ||
[ "$mountpoint" = "-" ] [ "$mountpoint1" = "-" ]
then then
if [ "$fs" != "${ZFS_BOOTFS}" ]; then if [ "$fs" != "${ZFS_BOOTFS}" ]; then
# We don't have a proper mountpoint and this # We don't have a proper mountpoint and this
# isn't the root fs. # isn't the root fs.
return 0 return 0
else
# Last hail-mary: Hope 'rootmnt' is set!
mountpoint=""
fi fi
fi
# If it's not a legacy filesystem, it can only be a
# native one...
if [ "$mountpoint" = "legacy" ]; then
ZFS_CMD="mount.zfs" ZFS_CMD="mount.zfs"
# Last hail-mary: Hope 'rootmnt' is set!
mountpoint=""
else
mountpoint="$mountpoint1"
fi fi
fi fi