{
local pool="$1"
+ # If 'POOL_IMPORTED' isn't set, no pool imported and therefor
+ # we won't be able to find a root fs.
+ [ -z "${POOL_IMPORTED}" ] && return 1
+
# If it's already specified, just keep it mounted and exit
# User (kernel command line) must be correct.
- if [ -n "${ZFS_BOOTFS}" ]
- then
- POOL_IMPORTED=1
- return 0
- fi
+ [ -n "${ZFS_BOOTFS}" ] && return 0
# Not set, try to find it in the 'bootfs' property of the pool.
# NOTE: zpool does not support 'get -H -ovalue bootfs'...
# Not boot fs here, export it and later try again..
"${ZPOOL}" export "$pool"
+ POOL_IMPORTED=""
return 1
}
then
[ "$quiet" != "y" ] && zfs_log_failure_msg "${ZFS_ERROR}"
- [ "$quiet" != "y" ] && zfs_log_begin_msg \
- "Importing pool '${pool}' using cachefile."
+ if [ -f "${ZPOOL_CACHE}" ]
+ then
+ [ "$quiet" != "y" ] && zfs_log_begin_msg \
+ "Importing pool '${pool}' using cachefile."
+
+ ZFS_CMD="${ZPOOL} import -c ${ZPOOL_CACHE} -N ${ZPOOL_FORCE}"
+ ZFS_STDERR="$($ZFS_CMD "$pool" 2>&1)"
+ ZFS_ERROR="$?"
+ fi
- ZFS_CMD="${ZPOOL} import -c ${ZPOOL_CACHE} -N ${ZPOOL_FORCE}"
- ZFS_STDERR="$($ZFS_CMD "$pool" 2>&1)"
- ZFS_ERROR="$?"
if [ "${ZFS_ERROR}" != 0 ]
then
[ "$quiet" != "y" ] && zfs_log_failure_msg "${ZFS_ERROR}"
fi
[ "$quiet" != "y" ] && zfs_log_end_msg
+
+ POOL_IMPORTED=1
return 0
}