Fix read-only pool hang on unmount
[zfs.git] / scripts / zpios-sanity.sh
index 194ae82..0f44115 100755 (executable)
@@ -13,6 +13,7 @@ fi
 
 PROG=zpios-sanity.sh
 HEADER=
+FAILS=0
 
 usage() {
 cat << EOF
@@ -61,8 +62,13 @@ if [ $(id -u) != 0 ]; then
        die "Must run as root"
 fi
 
+# Initialize the test suite
+init
+
 # Perform pre-cleanup is requested
 if [ ${CLEANUP} ]; then
+       ${ZFS_SH} -u
+       cleanup_md_devices
        cleanup_loop_devices
        rm -f /tmp/zpool.cache.*
 fi
@@ -74,6 +80,8 @@ zpios_test() {
 
        ${ZPIOS_SH} -f -c ${CONFIG} -t ${TEST} &>${LOG}
        if [ $? -ne 0 ]; then
+               FAILS=1
+
                if [ ${VERBOSE} ]; then
                        printf "FAIL:     %-13s\n" ${CONFIG}
                        cat ${LOG}
@@ -145,6 +153,9 @@ DANGEROUS_CONFIGS=(                                 \
        dm0-raid0                                       \
 )
 
+TMP_CACHE=`mktemp -p /tmp zpool.cache.XXXXXXXX`
+${ZFS_SH} zfs="spa_config_path=${TMP_CACHE}" || die "Unable to load modules"
+
 for CONFIG in ${SAFE_CONFIGS[*]}; do
        zpios_test $CONFIG tiny
 done
@@ -155,4 +166,6 @@ if [ ${DANGEROUS} ]; then
        done
 fi
 
-exit 0
+${ZFS_SH} -u
+
+exit $FAILS