xfs: fix filestreams tests when rtinherit=1
authorDarrick J. Wong <djwong@kernel.org>
Wed, 10 Feb 2021 02:57:00 +0000 (18:57 -0800)
committerEryu Guan <guaneryu@gmail.com>
Sun, 28 Feb 2021 13:23:10 +0000 (21:23 +0800)
The filestreams allocator can only be selected for files that reside on
the data volume.  In commit ee3e0010, we sprinkled calls to
_require_no_rtinherit in the filestreams tests so that there wouldn't be
regressions reported if the filesystem is formatted with -d rtinherit=1.

This unnecessarily limits test coverage because userspace can control
the device selection parameters quite easily with xfs_io chattr.  Make
the filestreams tests unset SCRATCH_RTDEV so that the allocator isn't
thrown off by the rtbitmap consuming space on the data device.

Fixes: ee3e0010 ("xfs/realtime: add _require_no_rtinherit function")
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
common/filestreams
tests/xfs/170
tests/xfs/171
tests/xfs/172
tests/xfs/173
tests/xfs/174
tests/xfs/445

index 267dcb3..8165eff 100644 (file)
@@ -90,6 +90,11 @@ _test_streams() {
        local use_directio="$7"
        local expected_result="$8"      # "fail" if failure is expected
 
+       # Disable the scratch rt device to avoid test failures relating to the
+       # rt bitmap consuming free space in our small data device and throwing
+       # off the filestreams allocator.
+       unset SCRATCH_RTDEV
+
        local size=`expr $agsize \* 1024 \* 1024 \* $agcount`
        _scratch_mkfs_xfs -dsize=$size,agcount=$agcount >/dev/null 2>&1 \
                || _fail "mkfs failed"
index f7f0dd2..84023e4 100755 (executable)
@@ -33,7 +33,6 @@ _cleanup()
 _supported_fs xfs
 
 _require_scratch
-_require_no_rtinherit
 
 _check_filestreams_support || _notrun "filestreams not available"
 
index 35503b2..0239081 100755 (executable)
@@ -32,7 +32,6 @@ _cleanup()
 _supported_fs xfs
 
 _require_scratch
-_require_no_rtinherit
 
 _check_filestreams_support || _notrun "filestreams not available"
 
index 36b4e65..56c34e6 100755 (executable)
@@ -32,7 +32,6 @@ _cleanup()
 _supported_fs xfs
 
 _require_scratch
-_require_no_rtinherit
 
 _check_filestreams_support || _notrun "filestreams not available"
 
index 8ed86d9..f37d271 100755 (executable)
@@ -32,7 +32,6 @@ _cleanup()
 _supported_fs xfs
 
 _require_scratch
-_require_no_rtinherit
 
 _check_filestreams_support || _notrun "filestreams not available"
 
index 5803893..fc3de04 100755 (executable)
@@ -32,7 +32,6 @@ _cleanup()
 _supported_fs xfs
 
 _require_scratch
-_require_no_rtinherit
 
 _check_filestreams_support || _notrun "filestreams not available"
 
index 7215fa5..d35010a 100755 (executable)
@@ -57,6 +57,11 @@ _require_xfs_io_command "falloc"
 # check for filestreams
 _check_filestreams_support || _notrun "filestreams not available"
 
+# Disable the scratch rt device to avoid test failures relating to the rt
+# bitmap consuming free space in our small data device and throwing off the
+# filestreams allocator.
+unset SCRATCH_RTDEV
+
 # use small AGs for frequent stream switching
 _scratch_mkfs_xfs -d agsize=20m,size=2g >> $seqres.full 2>&1 ||
        _fail "mkfs failed"