generic/361: disable xfs metadata io error retries
authorDarrick J. Wong <darrick.wong@oracle.com>
Wed, 24 Jun 2020 03:52:54 +0000 (20:52 -0700)
committerEryu Guan <guaneryu@gmail.com>
Sun, 19 Jul 2020 16:40:07 +0000 (00:40 +0800)
This test examines the behavior of xfs when the underlying filesystem is
a sparse image on the scratch filesystem when the scratch fs is about to
run out of space.  Unfortunately, the test assumes that the scratch fs
will ENOSPC on the large data write.  It's possible that metadata
writeback will hit ENOSPC instead, and if we do, the test will hang
forever while xfs retries the write.  Make sure we're set up to fail
fast so that we don't hang the test appliance.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
tests/generic/361

index e28aaf4..403bbe4 100755 (executable)
@@ -54,6 +54,11 @@ mkdir -p $fs_mnt
 loop_dev=$(_create_loop_device $fs_img)
 _mkfs_dev $loop_dev
 _mount $loop_dev $fs_mnt
+if [ "$FSTYP" = "xfs" ]; then
+       # Turn off all XFS metadata IO error retries
+       dname=$(_short_dev $loop_dev)
+       echo 0 | tee /sys/fs/xfs/$dname/error/*/*/* > /dev/null
+fi
 $XFS_IO_PROG -fc "pwrite 0 520m" $fs_mnt/testfile >>$seqres.full 2>&1
 
 # remount should not hang