_fail test by default if _scratch_mount failed and introduce _scratch_mount_nocheck for tests that need to check mount results themselves. Signed-off-by: Eryu Guan <eguan@xxxxxxxxxx> --- common/attr | 2 +- common/dmapi | 4 ++-- common/dump | 4 ++-- common/encrypt | 2 +- common/filestreams | 4 ++-- common/fuzzy | 4 ++-- common/log | 6 +++--- common/overlay | 2 +- common/punch | 2 +- common/quota | 4 ++-- common/rc | 38 ++++++++++++++++++++++---------------- common/xfs | 12 ++++++------ 12 files changed, 45 insertions(+), 39 deletions(-) diff --git a/common/attr b/common/attr index 66b0227f721e..e83aadb803f7 100644 --- a/common/attr +++ b/common/attr @@ -229,7 +229,7 @@ _require_noattr2() { _scratch_mkfs_xfs > /dev/null 2>&1 \ || _fail "_scratch_mkfs_xfs failed on $SCRATCH_DEV" - _scratch_mount -o noattr2 > /dev/null 2>&1 \ + _scratch_mount_nocheck -o noattr2 > /dev/null 2>&1 \ || _notrun "noattr2 mount option not supported on $SCRATCH_DEV" _scratch_unmount } diff --git a/common/dmapi b/common/dmapi index c8a463a2cac0..af0faf504a3d 100644 --- a/common/dmapi +++ b/common/dmapi @@ -31,10 +31,10 @@ _dmapi_scratch_mount () { if [ `echo "$MOUNT_OPTIONS" | grep -c dmapi` -gt 0 -o \ `echo "$MOUNT_OPTIONS" | grep -c dmi` -gt 0 ] ; then #already got dmapi options set - _scratch_mount + _scratch_mount_nocheck dmapi_mount_result=$? else - _scratch_mount "-o dmapi,mtpt=$SCRATCH_MNT" + _scratch_mount_nocheck "-o dmapi,mtpt=$SCRATCH_MNT" dmapi_mount_result=$? fi diff --git a/common/dump b/common/dump index 2b3cfa0f0607..7b9c10a25414 100644 --- a/common/dump +++ b/common/dump @@ -235,7 +235,7 @@ _wipe_fs() _require_scratch _scratch_mkfs_xfs >>$seqres.full || _fail "mkfs failed" - _scratch_mount >>$seqres.full || _fail "mount failed" + _scratch_mount >>$seqres.full } # @@ -287,7 +287,7 @@ _stable_fs() { _saveddir=`pwd`; cd / _scratch_unmount >>$seqres.full || _fail "unmount failed" - _scratch_mount >>$seqres.full || _fail "mount failed" + _scratch_mount >>$seqres.full cd $_saveddir } diff --git a/common/encrypt b/common/encrypt index 189c59ee9bbd..4c5fce75fe62 100644 --- a/common/encrypt +++ b/common/encrypt @@ -43,7 +43,7 @@ _require_scratch_encryption() # Try to mount the filesystem. If this fails then either the kernel # isn't aware of encryption, or the mkfs options were not compatible # with encryption (e.g. ext4 with block size != PAGE_SIZE). - if ! _scratch_mount &>>$seqres.full; then + if ! _scratch_mount_nocheck &>>$seqres.full; then _notrun "kernel is unaware of $FSTYP encryption feature," \ "or mkfs options are not compatible with encryption" fi diff --git a/common/filestreams b/common/filestreams index f5441f5a82e9..a06020c8b3fb 100644 --- a/common/filestreams +++ b/common/filestreams @@ -111,11 +111,11 @@ _test_streams() { if [ "$use_iflag" = "0" ]; then # mount using filestreams mount option - _scratch_mount "-o filestreams" \ + _scratch_mount_nocheck "-o filestreams" \ || _fail "filestreams mount failed" else # test will set inode flag - _scratch_mount || _fail "mount failed" + _scratch_mount fi cd $SCRATCH_MNT diff --git a/common/fuzzy b/common/fuzzy index b964fd8cb0fc..f5bd3f594666 100644 --- a/common/fuzzy +++ b/common/fuzzy @@ -200,7 +200,7 @@ __scratch_xfs_fuzz_field_test() { # Try to catch the error with scrub echo "+ Try to catch the error" - _scratch_mount 2>&1 + _scratch_mount_nocheck 2>&1 res=$? if [ $res -eq 0 ]; then # Try an online scrub unless we're fuzzing ag 0's sb, @@ -245,7 +245,7 @@ __scratch_xfs_fuzz_field_test() { # See if scrub finds a clean fs echo "+ Make sure error is gone (online)" - _scratch_mount 2>&1 + _scratch_mount_nocheck 2>&1 res=$? if [ $res -eq 0 ]; then # Try an online scrub unless we're fuzzing ag 0's sb, diff --git a/common/log b/common/log index bdb4ed684a08..2157b2848a69 100644 --- a/common/log +++ b/common/log @@ -370,7 +370,7 @@ _create_log() { # mount the FS _full "mount" - _scratch_mount >>$seqres.full 2>&1 + _scratch_mount_nocheck >>$seqres.full 2>&1 if [ $? -ne 0 ] ; then _echofull "mount failed: $MOUNT_OPTIONS" return 1 @@ -399,7 +399,7 @@ _create_log_sync() { # mount the FS _full " mount" - _scratch_mount >>$seqres.full 2>&1 + _scratch_mount_nocheck >>$seqres.full 2>&1 if [ $? -ne 0 ] ; then _echofull "mount failed: $MOUNT_OPTIONS" return 1 @@ -519,7 +519,7 @@ _require_v2log() # test out mount to see if it mounts a v2 log fs export MOUNT_OPTIONS="-o logbsize=32k" - if ! _scratch_mount >>$seqres.full 2>&1; then + if ! _scratch_mount_nocheck >>$seqres.full 2>&1; then _notrun "mount/kernel does not support v2 logs" fi diff --git a/common/overlay b/common/overlay index a8b0e9369c86..054b759e1ce4 100644 --- a/common/overlay +++ b/common/overlay @@ -167,7 +167,7 @@ _require_scratch_overlay_features() done _scratch_mkfs > /dev/null 2>&1 - _scratch_mount -o $opts || \ + _scratch_mount_nocheck -o $opts || \ _notrun "overlay options '$opts' cannot be enabled on ${SCRATCH_DEV}" for feature in ${features[*]}; do diff --git a/common/punch b/common/punch index c4ed26192a22..42a7e97496b7 100644 --- a/common/punch +++ b/common/punch @@ -131,7 +131,7 @@ _test_punch() { _dmapi_scratch_mount else # only unresvsp punch type is used, just do a normal mount - _scratch_mount || _fail "mount failed" + _scratch_mount fi cd $SCRATCH_MNT diff --git a/common/quota b/common/quota index 2611c484ee35..c1f1436458c2 100644 --- a/common/quota +++ b/common/quota @@ -119,7 +119,7 @@ _scratch_enable_pquota() [ "$FSTYP" != "ext4" ] && return tune2fs -O quota,project $SCRATCH_DEV >>$seqres.full 2>&1 - _scratch_mount >/dev/null 2>&1 \ + _scratch_mount_nocheck >/dev/null 2>&1 \ || _notrun "kernel doesn't support project feature on $FSTYP" _scratch_unmount } @@ -202,7 +202,7 @@ _choose_prid() _qmount() { _scratch_unmount >/dev/null 2>&1 - _scratch_mount || _fail "qmount failed" + _scratch_mount_nocheck || _fail "qmount failed" # xfs doesn't need these setups and quotacheck even fails on xfs # redirect the output to $seqres.full for debug purpose and ignore results if [ "$FSTYP" != "xfs" ]; then diff --git a/common/rc b/common/rc index b9dc0b9206db..ddfcbec65135 100644 --- a/common/rc +++ b/common/rc @@ -352,13 +352,18 @@ _supports_filetype() esac } +_scratch_mount_nocheck() +{ + if [ "$FSTYP" == "overlay" ]; then + _overlay_scratch_mount $* + return $? + fi + _mount -t $FSTYP `_scratch_mount_options $*` +} + _scratch_mount() { - if [ "$FSTYP" == "overlay" ]; then - _overlay_scratch_mount $* - return $? - fi - _mount -t $FSTYP `_scratch_mount_options $*` + _scratch_mount_nocheck $* || _fail "_scratch_mount failed" } _scratch_unmount() @@ -397,7 +402,7 @@ _scratch_cycle_mount() opts="-o $opts" fi _scratch_unmount - _scratch_mount "$opts" + _scratch_mount_nocheck "$opts" || _fail "_scratch_cycle_mount failed" } _scratch_shutdown() @@ -524,7 +529,7 @@ _setup_large_ext4_fs() # mount the filesystem and create 16TB - 4KB files until we consume # all the necessary space. - _scratch_mount 2>&1 >$tmp_dir/mnt.err + _scratch_mount_nocheck 2>&1 >$tmp_dir/mnt.err local status=$? if [ $status -ne 0 ]; then echo "mount failed" @@ -1103,7 +1108,7 @@ _repair_scratch_fs() res=$? if [ "$res" -ne 0 ]; then echo "xfs_repair returns $res; replay log?" - _scratch_mount + _scratch_mount_nocheck res=$? if [ "$res" -gt 0 ]; then echo "mount returns $res; zap log?" @@ -1872,7 +1877,7 @@ _require_scratch_ext4_crc() { _scratch_mkfs_ext4 >/dev/null 2>&1 dumpe2fs -h $SCRATCH_DEV 2> /dev/null | grep -q metadata_csum || _notrun "metadata_csum not supported by this filesystem" - _scratch_mount >/dev/null 2>&1 \ + _scratch_mount_nocheck >/dev/null 2>&1 \ || _notrun "Kernel doesn't support metadata_csum feature" _scratch_unmount } @@ -1888,7 +1893,7 @@ _require_scratch_ext4_feature() $MKFS_EXT4_PROG -F $MKFS_OPTIONS -O "$1" \ $SCRATCH_DEV 512m >/dev/null 2>&1 \ || _notrun "mkfs.ext4 doesn't support $1 feature" - _scratch_mount >/dev/null 2>&1 \ + _scratch_mount_nocheck >/dev/null 2>&1 \ || _notrun "Kernel doesn't support the ext4 feature(s): $1" _scratch_unmount } @@ -2322,7 +2327,7 @@ _require_scratch_richacl_xfs() _scratch_mkfs_xfs_supported -m richacl=1 >/dev/null 2>&1 \ || _notrun "mkfs.xfs doesn't have richacl feature" _scratch_mkfs_xfs -m richacl=1 >/dev/null 2>&1 - _scratch_mount >/dev/null 2>&1 \ + _scratch_mount_nocheck >/dev/null 2>&1 \ || _notrun "kernel doesn't support richacl feature on $FSTYP" _scratch_unmount } @@ -2331,7 +2336,7 @@ _require_scratch_richacl_ext4() { _scratch_mkfs -O richacl >/dev/null 2>&1 \ || _notrun "can't mkfs $FSTYP with option -O richacl" - _scratch_mount >/dev/null 2>&1 \ + _scratch_mount_nocheck >/dev/null 2>&1 \ || _notrun "kernel doesn't support richacl feature on $FSTYP" _scratch_unmount } @@ -2993,7 +2998,7 @@ _require_scratch_shutdown() [ -x src/godown ] || _notrun "src/godown executable not found" _scratch_mkfs > /dev/null 2>&1 || _notrun "_scratch_mkfs failed on $SCRATCH_DEV" - _scratch_mount || _notrun "_scratch_mount failed on $SCRATCH_MNT" + _scratch_mount if [ $FSTYP = "overlay" ]; then if [ -z $OVL_BASE_SCRATCH_DEV ]; then @@ -3019,7 +3024,8 @@ _require_scratch_dax() { _require_scratch _scratch_mkfs > /dev/null 2>&1 - _scratch_mount -o dax + _scratch_mount_nocheck -o dax || \ + _notrun "mount $SCRATCH_DEV with dax failed" # Check options to be sure. XFS ignores dax option # and goes on if dev underneath does not support dax. _fs_options $SCRATCH_DEV | grep -qw "dax" || \ @@ -3030,7 +3036,7 @@ _require_scratch_dax() # Does norecovery support by this fs? _require_norecovery() { - _scratch_mount -o ro,norecovery || \ + _scratch_mount_nocheck -o ro,norecovery || \ _notrun "$FSTYP does not support norecovery" _scratch_unmount } @@ -3229,7 +3235,7 @@ _require_atime() _require_relatime() { _scratch_mkfs > /dev/null 2>&1 - _scratch_mount -o relatime || \ + _scratch_mount_nocheck -o relatime || \ _notrun "relatime not supported by the current kernel" _scratch_unmount } diff --git a/common/xfs b/common/xfs index 9b20b0380782..c6d8f0938ac9 100644 --- a/common/xfs +++ b/common/xfs @@ -18,7 +18,7 @@ _setup_large_xfs_fs() file_size=$(($file_size - $SCRATCH_DEV_EMPTY_SPACE)) # mount the filesystem, create the file, unmount it - _scratch_mount 2>&1 >$tmp_dir/mnt.err + _scratch_mount_nocheck 2>&1 >$tmp_dir/mnt.err local status=$? if [ $status -ne 0 ]; then echo "mount failed" @@ -223,7 +223,7 @@ _require_xfs_mkfs_crc() _require_xfs_crc() { _scratch_mkfs_xfs -m crc=1 >/dev/null 2>&1 - _scratch_mount >/dev/null 2>&1 \ + _scratch_mount_nocheck >/dev/null 2>&1 \ || _notrun "Kernel doesn't support crc feature" _scratch_unmount } @@ -233,7 +233,7 @@ _require_xfs_crc() _require_scratch_xfs_crc() { _scratch_mkfs_xfs >/dev/null 2>&1 - _scratch_mount >/dev/null 2>&1 \ + _scratch_mount_nocheck >/dev/null 2>&1 \ || _notrun "Kernel doesn't support crc feature" xfs_info $SCRATCH_MNT | grep -q 'crc=1' || _notrun "crc feature not supported by this filesystem" _scratch_unmount @@ -252,7 +252,7 @@ _require_xfs_mkfs_finobt() _require_xfs_finobt() { _scratch_mkfs_xfs -m crc=1,finobt=1 >/dev/null 2>&1 - _scratch_mount >/dev/null 2>&1 \ + _scratch_mount_nocheck >/dev/null 2>&1 \ || _notrun "Kernel doesn't support finobt feature" _scratch_unmount } @@ -280,7 +280,7 @@ _require_xfs_sparse_inodes() _scratch_mkfs_xfs_supported -m crc=1 -i sparse > /dev/null 2>&1 \ || _notrun "mkfs.xfs does not support sparse inodes" _scratch_mkfs_xfs -m crc=1 -i sparse > /dev/null 2>&1 - _scratch_mount >/dev/null 2>&1 \ + _scratch_mount_nocheck >/dev/null 2>&1 \ || _notrun "kernel does not support sparse inodes" _scratch_unmount } @@ -599,7 +599,7 @@ _require_meta_uuid() _scratch_xfs_db -x -c "uuid generate" >/dev/null 2>&1 - _scratch_mount >/dev/null 2>&1 \ + _scratch_mount_nocheck >/dev/null 2>&1 \ || _notrun "Kernel doesn't support meta_uuid feature" _scratch_unmount } -- 2.14.3 -- To unsubscribe from this list: send the line "unsubscribe fstests" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html