Check whether delalloc is supported on current device.
Signed-off-by: Shiyang Ruan <ruansy.fnst@fujitsu.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
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()
# real QA test starts here
_require_scratch_reflink
+_require_scratch_delalloc
_require_xfs_io_command "falloc"
_require_odirect
# real QA test starts here
_require_scratch_reflink
+_require_scratch_delalloc
_require_xfs_io_command "falloc"
echo "Format and mount"
# real QA test starts here
_require_scratch_reflink
+_require_scratch_delalloc
_require_xfs_io_command "falloc"
_require_xfs_io_command "fpunch"
_require_cp_reflink
# real QA test starts here
_require_scratch_reflink
+_require_scratch_delalloc
_require_xfs_io_command "falloc"
_require_xfs_io_command "fpunch"
_require_cp_reflink
# real QA test starts here
_require_scratch_reflink
+_require_scratch_delalloc
_require_xfs_io_command "falloc"
echo "Format and mount"
# real QA test starts here
_require_scratch_reflink
+_require_scratch_delalloc
_require_xfs_io_command "falloc"
_require_odirect
# real QA test starts here
_supported_fs generic
_require_scratch_reflink
+_require_scratch_delalloc
_require_xfs_io_command "falloc"
echo "Format and mount"
# real QA test starts here
_supported_fs generic
_require_scratch_reflink
+_require_scratch_delalloc
_require_xfs_io_command "falloc"
echo "Format and mount"
# real QA test starts here
_supported_fs generic
_require_scratch_reflink
+_require_scratch_delalloc
_require_xfs_io_command "falloc"
echo "Format and mount"
# real QA test starts here
_supported_fs generic
_require_scratch_reflink
+_require_scratch_delalloc
_require_xfs_io_command "falloc"
echo "Format and mount"
# 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
# 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"
# real QA test starts here
_require_scratch_reflink
+_require_scratch_delalloc
_require_xfs_io_command "falloc"
_require_xfs_io_command "cowextsize"
_require_odirect
# real QA test starts here
_require_scratch_reflink
+_require_scratch_delalloc
_require_xfs_io_command "falloc"
_require_xfs_io_command "cowextsize"
# 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"
# 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"
# real QA test starts here
_require_scratch_reflink
+_require_scratch_delalloc
_require_xfs_io_command "falloc"
_require_xfs_io_command "cowextsize"
# real QA test starts here
_require_scratch_reflink
+_require_scratch_delalloc
_require_xfs_io_command "falloc"
_require_xfs_io_command "cowextsize"
_require_odirect