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.
This commit is contained in:
Brian Behlendorf 2011-06-02 10:25:35 -07:00
parent 2ea9dc40f8
commit 36391312af
1 changed files with 11 additions and 2 deletions

View File

@ -42,6 +42,15 @@ OPTIONS:
EOF EOF
} }
unload_die() {
unload_modules
while [ -c /dev/zpios ]; do
sleep 1
done
exit 1
}
print_header() { print_header() {
echo --------------------- ZPIOS RESULTS ---------------------------- echo --------------------- ZPIOS RESULTS ----------------------------
echo -n "Date: "; date echo -n "Date: "; date
@ -242,7 +251,7 @@ fi
# Create the zpool configuration # Create the zpool configuration
${ZPOOL_CREATE_SH} ${VERBOSE_FLAG} ${FORCE_FLAG} \ ${ZPOOL_CREATE_SH} ${VERBOSE_FLAG} ${FORCE_FLAG} \
-p ${ZPOOL_NAME} -c ${ZPOOL_CONFIG} \ -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 if [ ${PROFILE} ]; then
zpios_profile_start zpios_profile_start
@ -261,7 +270,7 @@ fi
# Destroy the zpool configuration # Destroy the zpool configuration
${ZPOOL_CREATE_SH} ${VERBOSE_FLAG} ${FORCE_FLAG} \ ${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 the test module stack and wait for device removal
unload_modules unload_modules