]> git.proxmox.com Git - mirror_zfs-debian.git/blobdiff - scripts/zfs.sh
Install init scripts to support non-systemd setups. (Closes: #826994)
[mirror_zfs-debian.git] / scripts / zfs.sh
index 6060fbaa88ecfae8938ef07bfbe6df98c9c2fbb5..2ffcf40da5ef8ba6fca18a9bcc45d303f79cf13c 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # A simple script to simply the loading/unloading the ZFS module stack.
 
-basedir="$(dirname $0)"
+basedir=$(dirname "$0")
 
 SCRIPT_COMMON=common.sh
 if [ -f "${basedir}/${SCRIPT_COMMON}" ]; then
@@ -11,6 +11,7 @@ else
 echo "Missing helper script ${SCRIPT_COMMON}" && exit 1
 fi
 
+# shellcheck disable=SC2034
 PROG=zfs.sh
 UNLOAD=
 
@@ -26,33 +27,29 @@ 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
+while getopts 'hvu' OPTION; do
        case $OPTION in
        h)
                usage
                exit 1
                ;;
        v)
+               # shellcheck disable=SC2034
                VERBOSE=1
                ;;
        u)
                UNLOAD=1
                ;;
-       d)
-               DUMP_LOG=1
-               ;;
        ?)
                usage
                exit
@@ -60,16 +57,20 @@ while getopts 'hvud' OPTION; do
        esac
 done
 
-if [ $(id -u) != 0 ]; then
+if [ "$(id -u)" != 0 ]; then
        die "Must run as root"
 fi
 
 if [ ${UNLOAD} ]; then
+       kill_zed
+       umount -t zfs -a
+       stack_check
        unload_modules
 else
+       stack_clear
        check_modules || die "${ERROR}"
-       load_modules "$@"
-       wait_udev /dev/zfs 30
+       load_modules "$@" || die "Failed to load modules"
+       wait_udev /dev/zfs 30 || die "'/dev/zfs' was not created"
 fi
 
 exit 0