mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
fstests: fix fallocate commands that need the unshare switch
We re-added the UNSHARE flag to fallocate, so go make sure that all the unshare tests actually check that the installed copy of xfs_io supports the 'funshare' command and that the underlying filesystem understands the flag, and change the tests themselves to use funshare. Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Eryu Guan <eguan@redhat.com>
This commit is contained in:
committed by
Eryu Guan
parent
bf5a5da572
commit
ed6e4664ee
@@ -2042,7 +2042,7 @@ _require_xfs_io_command()
|
||||
"falloc" )
|
||||
testio=`$XFS_IO_PROG -F -f -c "falloc 0 1m" $testfile 2>&1`
|
||||
;;
|
||||
"fpunch" | "fcollapse" | "zero" | "fzero" | "finsert" )
|
||||
"fpunch" | "fcollapse" | "zero" | "fzero" | "finsert" | "funshare")
|
||||
testio=`$XFS_IO_PROG -F -f -c "pwrite 0 20k" -c "fsync" \
|
||||
-c "$command 4k 8k" $testfile 2>&1`
|
||||
;;
|
||||
|
||||
+6
-10
@@ -54,15 +54,11 @@ _cleanup()
|
||||
. ./common/attr
|
||||
. ./common/reflink
|
||||
|
||||
if [ $FSTYP = "btrfs" ]; then
|
||||
_notrun "btrfs doesn't handle unshare on fallocate"
|
||||
fi
|
||||
|
||||
# real QA test starts here
|
||||
_supported_os Linux
|
||||
_require_test_reflink
|
||||
_require_cp_reflink
|
||||
_require_xfs_io_command "falloc"
|
||||
_require_xfs_io_command "funshare"
|
||||
|
||||
rm -f $seqres.full
|
||||
|
||||
@@ -89,18 +85,18 @@ _test_cycle_mount
|
||||
free_blocks1=$(stat -f $testdir -c '%f')
|
||||
|
||||
echo "funshare part of a file"
|
||||
$XFS_IO_PROG -f -c "falloc 0 $((sz / 2))" $testdir/file2
|
||||
$XFS_IO_PROG -f -c "funshare 0 $((sz / 2))" $testdir/file2
|
||||
_test_cycle_mount
|
||||
|
||||
echo "funshare some of the copies"
|
||||
$XFS_IO_PROG -f -c "falloc 0 $sz" $testdir/file2
|
||||
$XFS_IO_PROG -f -c "falloc 0 $sz" $testdir/file3
|
||||
$XFS_IO_PROG -f -c "funshare 0 $sz" $testdir/file2
|
||||
$XFS_IO_PROG -f -c "funshare 0 $sz" $testdir/file3
|
||||
_test_cycle_mount
|
||||
free_blocks2=$(stat -f $testdir -c '%f')
|
||||
|
||||
echo "funshare the rest of the files"
|
||||
$XFS_IO_PROG -f -c "falloc 0 $sz" $testdir/file4
|
||||
$XFS_IO_PROG -f -c "falloc 0 $sz" $testdir/file1
|
||||
$XFS_IO_PROG -f -c "funshare 0 $sz" $testdir/file4
|
||||
$XFS_IO_PROG -f -c "funshare 0 $sz" $testdir/file1
|
||||
_test_cycle_mount
|
||||
free_blocks3=$(stat -f $testdir -c '%f')
|
||||
|
||||
|
||||
+2
-2
@@ -47,7 +47,7 @@ _cleanup()
|
||||
_supported_os Linux
|
||||
_require_scratch_reflink
|
||||
_require_cp_reflink
|
||||
_require_xfs_io_command "falloc"
|
||||
_require_xfs_io_command "funshare"
|
||||
|
||||
rm -f $seqres.full
|
||||
|
||||
@@ -75,7 +75,7 @@ md5sum $testdir/file2 | _filter_scratch
|
||||
md5sum $testdir/file2.chk | _filter_scratch
|
||||
|
||||
echo "CoW and unmount"
|
||||
$XFS_IO_PROG -f -c "pwrite -S 0x62 -b $((blksz * 3)) $blksz $((blksz * 3))" -c "falloc $((blksz * 2)) $blksz" $testdir/file2 >> $seqres.full
|
||||
$XFS_IO_PROG -f -c "pwrite -S 0x62 -b $((blksz * 3)) $blksz $((blksz * 3))" -c "funshare $((blksz * 2)) $blksz" $testdir/file2 >> $seqres.full
|
||||
_scratch_cycle_mount
|
||||
$XFS_IO_PROG -f -c "pwrite -S 0x62 -b $((blksz * 3)) $blksz $((blksz * 3))" $testdir/file2.chk >> $seqres.full
|
||||
_scratch_cycle_mount
|
||||
|
||||
+6
-6
@@ -63,7 +63,7 @@ _supported_os Linux
|
||||
_require_test_reflink
|
||||
_require_test_lsattr
|
||||
_require_cp_reflink
|
||||
_require_xfs_io_command "falloc"
|
||||
_require_xfs_io_command "funshare"
|
||||
|
||||
rm -f $seqres.full
|
||||
|
||||
@@ -90,18 +90,18 @@ _test_cycle_mount
|
||||
free_blocks1=$(stat -f $testdir -c '%f')
|
||||
|
||||
echo "funshare part of a file"
|
||||
$XFS_IO_PROG -f -c "falloc 0 $((sz / 2))" $testdir/file2
|
||||
$XFS_IO_PROG -f -c "funshare 0 $((sz / 2))" $testdir/file2
|
||||
_test_cycle_mount
|
||||
|
||||
echo "funshare some of the copies"
|
||||
$XFS_IO_PROG -f -c "falloc 0 $sz" $testdir/file2
|
||||
$XFS_IO_PROG -f -c "falloc 0 $sz" $testdir/file3
|
||||
$XFS_IO_PROG -f -c "funshare 0 $sz" $testdir/file2
|
||||
$XFS_IO_PROG -f -c "funshare 0 $sz" $testdir/file3
|
||||
_test_cycle_mount
|
||||
free_blocks2=$(stat -f $testdir -c '%f')
|
||||
|
||||
echo "funshare the rest of the files"
|
||||
$XFS_IO_PROG -f -c "falloc 0 $sz" $testdir/file4
|
||||
$XFS_IO_PROG -f -c "falloc 0 $sz" $testdir/file1
|
||||
$XFS_IO_PROG -f -c "funshare 0 $sz" $testdir/file4
|
||||
$XFS_IO_PROG -f -c "funshare 0 $sz" $testdir/file1
|
||||
_test_cycle_mount
|
||||
free_blocks3=$(stat -f $testdir -c '%f')
|
||||
|
||||
|
||||
+2
-1
@@ -51,6 +51,7 @@ _require_scratch_reflink
|
||||
_require_cp_reflink
|
||||
_require_fiemap
|
||||
_require_xfs_io_command "cowextsize"
|
||||
_require_xfs_io_command "funshare"
|
||||
|
||||
rm -f $seqres.full
|
||||
|
||||
@@ -84,7 +85,7 @@ md5sum $testdir/file2 | _filter_scratch
|
||||
echo "CoW and unmount"
|
||||
$XFS_IO_PROG -f -c "cowextsize" $testdir/file2 >> $seqres.full
|
||||
$XFS_IO_PROG -f -c "pwrite -R -S 0x63 -b $real_blksz 0 $((filesize + 1))" -c "fdatasync" $testdir/file2 >> $seqres.full
|
||||
$XFS_IO_PROG -f -c "falloc 0 $((filesize + 1))" $testdir/file2 >> $seqres.full
|
||||
$XFS_IO_PROG -f -c "funshare 0 $((filesize + 1))" $testdir/file2 >> $seqres.full
|
||||
_scratch_cycle_mount
|
||||
|
||||
echo "Compare files"
|
||||
|
||||
+2
-1
@@ -51,6 +51,7 @@ _require_scratch_reflink
|
||||
_require_cp_reflink
|
||||
_require_fiemap
|
||||
_require_xfs_io_command "cowextsize"
|
||||
_require_xfs_io_command "funshare"
|
||||
_require_odirect
|
||||
|
||||
rm -f $seqres.full
|
||||
@@ -85,7 +86,7 @@ md5sum $testdir/file2 | _filter_scratch
|
||||
echo "CoW and unmount"
|
||||
$XFS_IO_PROG -f -c "cowextsize" $testdir/file2 >> $seqres.full
|
||||
$XFS_IO_PROG -d -f -c "pwrite -R -S 0x63 -b $real_blksz 0 $filesize" $testdir/file2 >> $seqres.full
|
||||
$XFS_IO_PROG -d -f -c "falloc 0 $filesize" $testdir/file2 >> $seqres.full
|
||||
$XFS_IO_PROG -d -f -c "funshare 0 $filesize" $testdir/file2 >> $seqres.full
|
||||
_scratch_cycle_mount
|
||||
|
||||
echo "Compare files"
|
||||
|
||||
+2
-1
@@ -53,6 +53,7 @@ _require_scratch_reflink
|
||||
_require_cp_reflink
|
||||
_require_fiemap
|
||||
_require_xfs_io_command "cowextsize"
|
||||
_require_xfs_io_command "funshare"
|
||||
|
||||
rm -f $seqres.full
|
||||
|
||||
@@ -88,7 +89,7 @@ $XFS_IO_PROG -f -c "cowextsize" $testdir/file2 >> $seqres.full
|
||||
cat $testdir/file2 > /dev/null
|
||||
$XFS_IO_PROG -f -c "pwrite -R -S 0x63 -b $real_blksz 0 $filesize" -c "fdatasync" $testdir/file2 >> $seqres.full
|
||||
$XFS_IO_PROG -f -c "fadvise -d 0 $filesize" -c "fsync" $testdir/file2 >> $seqres.full
|
||||
$XFS_IO_PROG -f -c "falloc 0 $filesize" $testdir/file2 >> $seqres.full
|
||||
$XFS_IO_PROG -f -c "funshare 0 $filesize" $testdir/file2 >> $seqres.full
|
||||
_scratch_cycle_mount
|
||||
|
||||
echo "Compare files"
|
||||
|
||||
+2
-1
@@ -53,6 +53,7 @@ _require_scratch_reflink
|
||||
_require_cp_reflink
|
||||
_require_fiemap
|
||||
_require_xfs_io_command "cowextsize"
|
||||
_require_xfs_io_command "funshare"
|
||||
_require_odirect
|
||||
|
||||
rm -f $seqres.full
|
||||
@@ -89,7 +90,7 @@ $XFS_IO_PROG -f -c "cowextsize" $testdir/file2 >> $seqres.full
|
||||
cat $testdir/file2 > /dev/null
|
||||
$XFS_IO_PROG -d -f -c "pwrite -R -S 0x63 -b $real_blksz 0 $filesize" -c "fdatasync" $testdir/file2 >> $seqres.full
|
||||
$XFS_IO_PROG -f -c "fadvise -d 0 $filesize" -c "fsync" $testdir/file2 >> $seqres.full
|
||||
$XFS_IO_PROG -f -c "falloc 0 $filesize" $testdir/file2 >> $seqres.full
|
||||
$XFS_IO_PROG -f -c "funshare 0 $filesize" $testdir/file2 >> $seqres.full
|
||||
_scratch_cycle_mount
|
||||
|
||||
echo "Compare files"
|
||||
|
||||
+2
-1
@@ -51,6 +51,7 @@ _require_scratch_reflink
|
||||
_require_cp_reflink
|
||||
_require_fiemap
|
||||
_require_xfs_io_command "cowextsize"
|
||||
_require_xfs_io_command "funshare"
|
||||
_require_odirect
|
||||
|
||||
rm -f $seqres.full
|
||||
@@ -85,7 +86,7 @@ md5sum $testdir/file2 | _filter_scratch
|
||||
echo "CoW and unmount"
|
||||
$XFS_IO_PROG -f -c "cowextsize" $testdir/file2 >> $seqres.full
|
||||
$XFS_IO_PROG -d -f -c "pwrite -R -S 0x63 -b $real_blksz 0 $filesize" $testdir/file2 >> $seqres.full
|
||||
$XFS_IO_PROG -d -f -c "falloc -u 0 $filesize" $testdir/file2 >> $seqres.full
|
||||
$XFS_IO_PROG -d -f -c "funshare 0 $filesize" $testdir/file2 >> $seqres.full
|
||||
_scratch_cycle_mount
|
||||
|
||||
echo "Compare files"
|
||||
|
||||
+2
-1
@@ -50,6 +50,7 @@ _require_scratch_reflink
|
||||
_require_cp_reflink
|
||||
_require_fiemap
|
||||
_require_xfs_io_command "cowextsize"
|
||||
_require_xfs_io_command "funshare"
|
||||
|
||||
rm -f $seqres.full
|
||||
|
||||
@@ -83,7 +84,7 @@ md5sum $testdir/file2 | _filter_scratch
|
||||
echo "CoW and unmount"
|
||||
$XFS_IO_PROG -f -c "cowextsize" $testdir/file2 >> $seqres.full
|
||||
$XFS_IO_PROG -f -c "pwrite -R -S 0x63 -b $real_blksz 0 $filesize" -c "fdatasync" $testdir/file2 >> $seqres.full
|
||||
$XFS_IO_PROG -f -c "falloc -u 0 $filesize" $testdir/file2 >> $seqres.full
|
||||
$XFS_IO_PROG -f -c "funshare 0 $filesize" $testdir/file2 >> $seqres.full
|
||||
_scratch_cycle_mount
|
||||
|
||||
echo "Compare files"
|
||||
|
||||
+2
-1
@@ -51,6 +51,7 @@ _require_scratch_reflink
|
||||
_require_cp_reflink
|
||||
_require_fiemap
|
||||
_require_xfs_io_command "cowextsize"
|
||||
_require_xfs_io_command "funshare"
|
||||
_require_odirect
|
||||
|
||||
rm -f $seqres.full
|
||||
@@ -88,7 +89,7 @@ seq 1 10 | while read i; do
|
||||
$XFS_IO_PROG -d -f -c "pwrite -R -S 0x63 -b $real_blksz 0 $filesize" $testdir/file2 >> $seqres.full
|
||||
_scratch_cycle_mount
|
||||
done
|
||||
$XFS_IO_PROG -f -c "falloc -u 0 $filesize" $testdir/file2 >> $seqres.full
|
||||
$XFS_IO_PROG -f -c "funshare 0 $filesize" $testdir/file2 >> $seqres.full
|
||||
_scratch_cycle_mount
|
||||
|
||||
echo "Compare files"
|
||||
|
||||
+2
-1
@@ -51,6 +51,7 @@ _require_scratch_reflink
|
||||
_require_cp_reflink
|
||||
_require_fiemap
|
||||
_require_xfs_io_command "cowextsize"
|
||||
_require_xfs_io_command "funshare"
|
||||
|
||||
rm -f $seqres.full
|
||||
|
||||
@@ -87,7 +88,7 @@ seq 1 10 | while read i; do
|
||||
$XFS_IO_PROG -f -c "pwrite -R -S 0x63 -b $real_blksz 0 $filesize" $testdir/file2 >> $seqres.full
|
||||
_scratch_cycle_mount
|
||||
done
|
||||
$XFS_IO_PROG -f -c "falloc -u 0 $filesize" $testdir/file2 >> $seqres.full
|
||||
$XFS_IO_PROG -f -c "funshare 0 $filesize" $testdir/file2 >> $seqres.full
|
||||
_scratch_cycle_mount
|
||||
|
||||
echo "Compare files"
|
||||
|
||||
Reference in New Issue
Block a user