ext4/046: skip test when ext4 doesn't support bs < ps with dioread_nolock
[xfstests-dev.git] / tests / ext4 / 046
index 5524024e8b36f050d72581a69f21049e4a52b5c5..c6f7a0512af6f332598a27b5292bb308ff352fa4 100755 (executable)
@@ -31,13 +31,22 @@ _cleanup()
 # remove previous $seqres.full before test
 rm -f $seqres.full
 
 # remove previous $seqres.full before test
 rm -f $seqres.full
 
+_require_check_dmesg
 _supported_fs ext4
 _require_scratch
 _require_xfs_io_command "falloc"
 _require_scratch_size $((6 * 1024 * 1024)) #kB
 
 _scratch_mkfs >> $seqres.full 2>&1
 _supported_fs ext4
 _require_scratch
 _require_xfs_io_command "falloc"
 _require_scratch_size $((6 * 1024 * 1024)) #kB
 
 _scratch_mkfs >> $seqres.full 2>&1
-_scratch_mount "-o dioread_nolock" >> $seqres.full 2>&1
+if ! _try_scratch_mount "-o dioread_nolock" >> $seqres.full 2>&1; then
+       err_str="can't mount with dioread_nolock if block size != PAGE_SIZE"
+       _check_dmesg_for ${err_str}
+       if [ $? -eq 0 ]; then
+               _notrun "mount failed, ext4 doesn't support bs < ps with dioread_nolock"
+       else
+               _fail "mount failed with dioread_nolock"
+       fi
+fi
 
 # Get blksz
 blksz=$(_get_file_block_size $SCRATCH_MNT)
 
 # Get blksz
 blksz=$(_get_file_block_size $SCRATCH_MNT)