2c4834f87a
Occasional failures were observed in zconfig.sh because udev could be delayed for a few seconds. To handle this the wait_udev function has been added to wait for timeout seconds for an expected device before returning an error. By default callers currently use a 30 seconds timeout which should be much longer than udev ever needs but not so long to worry the test suite is hung.
76 lines
1.0 KiB
Bash
Executable File
76 lines
1.0 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# A simple script to simply the loading/unloading the ZFS module stack.
|
|
|
|
basedir="$(dirname $0)"
|
|
|
|
SCRIPT_COMMON=common.sh
|
|
if [ -f "${basedir}/${SCRIPT_COMMON}" ]; then
|
|
. "${basedir}/${SCRIPT_COMMON}"
|
|
else
|
|
echo "Missing helper script ${SCRIPT_COMMON}" && exit 1
|
|
fi
|
|
|
|
PROG=zfs.sh
|
|
UNLOAD=
|
|
|
|
usage() {
|
|
cat << EOF
|
|
USAGE:
|
|
$0 [hvud] [module-options]
|
|
|
|
DESCRIPTION:
|
|
Load/unload the ZFS module stack.
|
|
|
|
OPTIONS:
|
|
-h Show this message
|
|
-v Verbose
|
|
-u Unload modules
|
|
-d Save debug log on unload
|
|
|
|
MODULE-OPTIONS:
|
|
Must be of the from module="options", for example:
|
|
|
|
$0 zfs="zfs_prefetch_disable=1"
|
|
$0 zfs="zfs_prefetch_disable=1 zfs_mdcomp_disable=1"
|
|
$0 spl="spl_debug_mask=0"
|
|
|
|
EOF
|
|
}
|
|
|
|
while getopts 'hvud' OPTION; do
|
|
case $OPTION in
|
|
h)
|
|
usage
|
|
exit 1
|
|
;;
|
|
v)
|
|
VERBOSE=1
|
|
;;
|
|
u)
|
|
UNLOAD=1
|
|
;;
|
|
d)
|
|
DUMP_LOG=1
|
|
;;
|
|
?)
|
|
usage
|
|
exit
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if [ $(id -u) != 0 ]; then
|
|
die "Must run as root"
|
|
fi
|
|
|
|
if [ ${UNLOAD} ]; then
|
|
unload_modules
|
|
else
|
|
check_modules || die "${ERROR}"
|
|
load_modules "$@"
|
|
wait_udev /dev/zfs 30
|
|
fi
|
|
|
|
exit 0
|