i-t: fix root=zfs:AUTO
IFS= would break loops in import_pool(), which would fault any automatic import Additionally $ZFS_BOOTFS from cmdline would interfere with find_rootfs() If many pools were present, same thing could happen across multiple find_rootfs() runs, so bail out early and clean up in error path Suggested-by: @nachtgeist Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz> Closes #11278 Closes #11838
This commit is contained in:
parent
1bb4b5a5ae
commit
46aec6d439
|
@ -94,8 +94,8 @@ find_rootfs()
|
||||||
|
|
||||||
# Not boot fs here, export it and later try again..
|
# Not boot fs here, export it and later try again..
|
||||||
"${ZPOOL}" export "$pool"
|
"${ZPOOL}" export "$pool"
|
||||||
POOL_IMPORTED=""
|
POOL_IMPORTED=
|
||||||
|
ZFS_BOOTFS=
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -815,6 +815,11 @@ mountroot()
|
||||||
then
|
then
|
||||||
# Try to detect both pool and root fs.
|
# Try to detect both pool and root fs.
|
||||||
|
|
||||||
|
# If we got here, that means we don't have a hint so as to
|
||||||
|
# the root dataset, but with root=zfs:AUTO on cmdline,
|
||||||
|
# this says "zfs:AUTO" here and interferes with checks later
|
||||||
|
ZFS_BOOTFS=
|
||||||
|
|
||||||
[ "$quiet" != "y" ] && \
|
[ "$quiet" != "y" ] && \
|
||||||
zfs_log_begin_msg "Attempting to import additional pools."
|
zfs_log_begin_msg "Attempting to import additional pools."
|
||||||
|
|
||||||
|
@ -832,8 +837,8 @@ mountroot()
|
||||||
do
|
do
|
||||||
[ -z "$pool" ] && continue
|
[ -z "$pool" ] && continue
|
||||||
|
|
||||||
import_pool "$pool"
|
IFS="$OLD_IFS" import_pool "$pool"
|
||||||
find_rootfs "$pool"
|
IFS="$OLD_IFS" find_rootfs "$pool" && break
|
||||||
done
|
done
|
||||||
IFS="$OLD_IFS"
|
IFS="$OLD_IFS"
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue