From: Brian Behlendorf Date: Thu, 2 Jun 2011 17:25:35 +0000 (-0700) Subject: Always unload zpios.ko on exit X-Git-Url: https://git.camperquake.de/gitweb.cgi?a=commitdiff_plain;h=36391312afdfac5584ca40ef1af7721108ce4c20;p=zfs.git Always unload zpios.ko on exit We should always unload zpios.ko on exit. This ensures that subsequent calls to 'zfs.sh -u' from other utilities will be able to unload the module stack and properly cleanup. This is important for the the --cleanup option which can be passed to zconfig.sh and zfault.sh. --- diff --git a/scripts/zpios.sh b/scripts/zpios.sh index e16a58a..a5599a6 100755 --- a/scripts/zpios.sh +++ b/scripts/zpios.sh @@ -42,6 +42,15 @@ OPTIONS: EOF } +unload_die() { + unload_modules + while [ -c /dev/zpios ]; do + sleep 1 + done + + exit 1 +} + print_header() { echo --------------------- ZPIOS RESULTS ---------------------------- echo -n "Date: "; date @@ -242,7 +251,7 @@ fi # Create the zpool configuration ${ZPOOL_CREATE_SH} ${VERBOSE_FLAG} ${FORCE_FLAG} \ -p ${ZPOOL_NAME} -c ${ZPOOL_CONFIG} \ - -l "${ZPOOL_OPTIONS}" -s "${ZFS_OPTIONS}" || exit 1 + -l "${ZPOOL_OPTIONS}" -s "${ZFS_OPTIONS}" || unload_die if [ ${PROFILE} ]; then zpios_profile_start @@ -261,7 +270,7 @@ fi # Destroy the zpool configuration ${ZPOOL_CREATE_SH} ${VERBOSE_FLAG} ${FORCE_FLAG} \ - -p ${ZPOOL_NAME} -c ${ZPOOL_CONFIG} -d || exit 1 + -p ${ZPOOL_NAME} -c ${ZPOOL_CONFIG} -d || unload_die # Unload the test module stack and wait for device removal unload_modules