Removed build system from master branch, will relocate to linux-zfs-branch
[zfs.git] / scripts / unload-zfs.sh
1 #!/bin/bash
2
3 prog=unload-zfs.sh
4 . ../.script-config
5
6 spl_module=${SPLBUILD}/modules/spl/spl.ko
7 zlib_module=/lib/modules/${KERNELSRCVER}/kernel/lib/zlib_deflate/zlib_deflate.ko
8 zavl_module=${ZFSBUILD}/lib/libavl/zavl.ko
9 znvpair_module=${ZFSBUILD}/lib/libnvpair/znvpair.ko
10 zport_module=${ZFSBUILD}/lib/libport/zport.ko
11 zcommon_module=${ZFSBUILD}/lib/libzcommon/zcommon.ko
12 zpool_module=${ZFSBUILD}/lib/libzpool/zpool.ko
13 zctl_module=${ZFSBUILD}/lib/libdmu-ctl/zctl.ko
14 zpios_module=${ZFSBUILD}/lib/libzpios/zpios.ko
15
16 die() {
17         echo "${prog}: $1" >&2
18         exit 1
19 }
20
21 unload_module() {
22         echo "Unloading $1"
23         /sbin/rmmod $1 || die "Failed to unload $1"
24 }
25
26 if [ $(id -u) != 0 ]; then
27         die "Must run as root"
28 fi
29
30 unload_module ${zpios_module}
31 unload_module ${zctl_module}
32 unload_module ${zpool_module}
33 unload_module ${zcommon_module}
34 unload_module ${zport_module}
35 unload_module ${znvpair_module}
36 unload_module ${zavl_module}
37 unload_module ${zlib_module}
38
39 # Set DUMP=1 to generate debug logs on unload
40 if [ -n "${DUMP}" ]; then
41         sysctl -w kernel.spl.debug.dump=1
42         # This is racy, I don't like it, but for a helper script it will do.
43         SPL_LOG=`dmesg | tail -n 1 | cut -f5 -d' '`
44         ${SPLBUILD}/cmd/spl ${SPL_LOG} >${SPL_LOG}.log
45         echo
46         echo "Dumped debug log: ${SPL_LOG}.log"
47         tail -n1 ${SPL_LOG}.log
48         echo
49 fi
50
51 unload_module ${spl_module}
52
53 echo "Successfully unloaded ZFS module stack"
54
55 exit 0