Check whether delalloc is supported on current device. Signed-off-by: Shiyang Ruan <ruansy.fnst@xxxxxxxxxxx> --- common/rc | 13 +++++++++++++ tests/generic/194 | 1 + tests/generic/195 | 1 + tests/generic/199 | 1 + tests/generic/200 | 1 + tests/generic/293 | 1 + tests/generic/295 | 1 + tests/generic/540 | 1 + tests/generic/541 | 1 + tests/generic/542 | 1 + tests/generic/543 | 1 + tests/xfs/172 | 12 +----------- tests/xfs/223 | 1 + tests/xfs/224 | 1 + tests/xfs/228 | 1 + tests/xfs/230 | 1 + tests/xfs/257 | 1 + tests/xfs/258 | 1 + 18 files changed, 30 insertions(+), 11 deletions(-) diff --git a/common/rc b/common/rc index 7973ceb5..a419b3ba 100644 --- a/common/rc +++ b/common/rc @@ -1748,6 +1748,19 @@ _require_scratch_16T_support() esac } +# Require scratch fs supports delay allocation. +_require_scratch_delalloc() +{ + _require_command "$FILEFRAG_PROG" filefrag + + _scratch_mkfs > $seqres.full + _scratch_mount + $XFS_IO_PROG -f -c 'pwrite 0 64k' $SCRATCH_MNT/testy &> /dev/null + $FILEFRAG_PROG -v $SCRATCH_MNT/testy 2>&1 | grep -q delalloc || \ + _notrun "test requires delayed allocation buffered writes" + _scratch_unmount +} + # this test needs a test partition - check we're ok & mount it # _require_test() diff --git a/tests/generic/194 b/tests/generic/194 index ce8c31ac..ff76438d 100755 --- a/tests/generic/194 +++ b/tests/generic/194 @@ -28,6 +28,7 @@ _cleanup() # real QA test starts here _require_scratch_reflink +_require_scratch_delalloc _require_xfs_io_command "falloc" _require_odirect diff --git a/tests/generic/195 b/tests/generic/195 index da502c39..e087b99c 100755 --- a/tests/generic/195 +++ b/tests/generic/195 @@ -28,6 +28,7 @@ _cleanup() # real QA test starts here _require_scratch_reflink +_require_scratch_delalloc _require_xfs_io_command "falloc" echo "Format and mount" diff --git a/tests/generic/199 b/tests/generic/199 index ab13f58e..2a8cafcc 100755 --- a/tests/generic/199 +++ b/tests/generic/199 @@ -31,6 +31,7 @@ _cleanup() # real QA test starts here _require_scratch_reflink +_require_scratch_delalloc _require_xfs_io_command "falloc" _require_xfs_io_command "fpunch" _require_cp_reflink diff --git a/tests/generic/200 b/tests/generic/200 index deadfeaa..a1a78ef4 100755 --- a/tests/generic/200 +++ b/tests/generic/200 @@ -31,6 +31,7 @@ _cleanup() # real QA test starts here _require_scratch_reflink +_require_scratch_delalloc _require_xfs_io_command "falloc" _require_xfs_io_command "fpunch" _require_cp_reflink diff --git a/tests/generic/293 b/tests/generic/293 index 74231b4d..0f1d8416 100755 --- a/tests/generic/293 +++ b/tests/generic/293 @@ -24,6 +24,7 @@ _begin_fstest auto quick clone # real QA test starts here _require_scratch_reflink +_require_scratch_delalloc _require_xfs_io_command "falloc" echo "Format and mount" diff --git a/tests/generic/295 b/tests/generic/295 index b921c79b..f66c1805 100755 --- a/tests/generic/295 +++ b/tests/generic/295 @@ -24,6 +24,7 @@ _begin_fstest auto quick clone # real QA test starts here _require_scratch_reflink +_require_scratch_delalloc _require_xfs_io_command "falloc" _require_odirect diff --git a/tests/generic/540 b/tests/generic/540 index 69cf635f..38e00f97 100755 --- a/tests/generic/540 +++ b/tests/generic/540 @@ -26,6 +26,7 @@ _begin_fstest auto quick clone # real QA test starts here _supported_fs generic _require_scratch_reflink +_require_scratch_delalloc _require_xfs_io_command "falloc" echo "Format and mount" diff --git a/tests/generic/541 b/tests/generic/541 index 925f346e..89b2adad 100755 --- a/tests/generic/541 +++ b/tests/generic/541 @@ -26,6 +26,7 @@ _begin_fstest auto quick clone # real QA test starts here _supported_fs generic _require_scratch_reflink +_require_scratch_delalloc _require_xfs_io_command "falloc" echo "Format and mount" diff --git a/tests/generic/542 b/tests/generic/542 index e3e627a8..e7682f59 100755 --- a/tests/generic/542 +++ b/tests/generic/542 @@ -26,6 +26,7 @@ _begin_fstest auto quick clone # real QA test starts here _supported_fs generic _require_scratch_reflink +_require_scratch_delalloc _require_xfs_io_command "falloc" echo "Format and mount" diff --git a/tests/generic/543 b/tests/generic/543 index 047bedd5..624cfc41 100755 --- a/tests/generic/543 +++ b/tests/generic/543 @@ -26,6 +26,7 @@ _begin_fstest auto quick clone # real QA test starts here _supported_fs generic _require_scratch_reflink +_require_scratch_delalloc _require_xfs_io_command "falloc" echo "Format and mount" diff --git a/tests/xfs/172 b/tests/xfs/172 index c0495305..56c2583b 100755 --- a/tests/xfs/172 +++ b/tests/xfs/172 @@ -16,7 +16,6 @@ _begin_fstest rw filestreams # real QA test starts here _supported_fs xfs -_require_command "$FILEFRAG_PROG" filefrag _require_scratch # The first _test_streams call sets up the filestreams allocator to fail and @@ -36,16 +35,7 @@ _require_scratch # rescan thresholds and will keep pushing out the expiration time, with the # result that the filestreams allocator succeeds in maintaining the streams. # The test considers this a failure. -# -# Make sure that a regular buffered write produces delalloc reservations. -# This effectively disables the test for files with extent size hints or DAX -# mode set. -_scratch_mkfs > $seqres.full -_scratch_mount -$XFS_IO_PROG -f -c 'pwrite 0 64k' $SCRATCH_MNT/testy &> /dev/null -$FILEFRAG_PROG -v $SCRATCH_MNT/testy 2>&1 | grep -q delalloc || \ - _notrun "test requires delayed allocation buffered writes" -_scratch_unmount +_require_scratch_delalloc _check_filestreams_support || _notrun "filestreams not available" diff --git a/tests/xfs/223 b/tests/xfs/223 index f002f1de..11dbad14 100755 --- a/tests/xfs/223 +++ b/tests/xfs/223 @@ -22,6 +22,7 @@ _begin_fstest auto quick clone # real QA test starts here _require_scratch_reflink +_require_scratch_delalloc _require_xfs_io_command "falloc" _require_xfs_io_command "cowextsize" _require_odirect diff --git a/tests/xfs/224 b/tests/xfs/224 index 11a54fa3..f8bab07e 100755 --- a/tests/xfs/224 +++ b/tests/xfs/224 @@ -22,6 +22,7 @@ _begin_fstest auto quick clone # real QA test starts here _require_scratch_reflink +_require_scratch_delalloc _require_xfs_io_command "falloc" _require_xfs_io_command "cowextsize" diff --git a/tests/xfs/228 b/tests/xfs/228 index 5c644c0f..f2f2f6a9 100755 --- a/tests/xfs/228 +++ b/tests/xfs/228 @@ -25,6 +25,7 @@ _begin_fstest auto quick clone punch # real QA test starts here _require_scratch_reflink +_require_scratch_delalloc _require_xfs_io_command "falloc" _require_xfs_io_command "cowextsize" _require_xfs_io_command "fpunch" diff --git a/tests/xfs/230 b/tests/xfs/230 index 53e8dd78..15f6b684 100755 --- a/tests/xfs/230 +++ b/tests/xfs/230 @@ -25,6 +25,7 @@ _begin_fstest auto quick clone punch # real QA test starts here _require_scratch_reflink +_require_scratch_delalloc _require_xfs_io_command "falloc" _require_xfs_io_command "cowextsize" _require_xfs_io_command "fpunch" diff --git a/tests/xfs/257 b/tests/xfs/257 index acd55c22..6a58f0ac 100755 --- a/tests/xfs/257 +++ b/tests/xfs/257 @@ -25,6 +25,7 @@ _begin_fstest auto quick clone # real QA test starts here _require_scratch_reflink +_require_scratch_delalloc _require_xfs_io_command "falloc" _require_xfs_io_command "cowextsize" diff --git a/tests/xfs/258 b/tests/xfs/258 index 25e8eb60..2865cdf9 100755 --- a/tests/xfs/258 +++ b/tests/xfs/258 @@ -25,6 +25,7 @@ _begin_fstest auto quick clone # real QA test starts here _require_scratch_reflink +_require_scratch_delalloc _require_xfs_io_command "falloc" _require_xfs_io_command "cowextsize" _require_odirect -- 2.34.1