From 36391312afdfac5584ca40ef1af7721108ce4c20 Mon Sep 17 00:00:00 2001 From: Brian Behlendorf Date: Thu, 2 Jun 2011 10:25:35 -0700 Subject: [PATCH] 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. --- scripts/zpios.sh | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/scripts/zpios.sh b/scripts/zpios.sh index e16a58a3ba..a5599a6d8c 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