@@ -6,16 +6,6 @@
BC=$(which bc 2> /dev/null) || BC=
-# Some tests are not relevant or functional when testing XFS realtime
-# subvolumes along with the rtinherit=1 mkfs option. In these cases,
-# this test will opt-out of the test.
-_require_no_rtinherit()
-{
- [ "$FSTYP" = "xfs" ] && echo "$MKFS_OPTIONS" |
- egrep -q "rtinherit([^=]|=1|$)" && \
- _notrun "rtinherit mkfs option is not supported by this test."
-}
-
_require_math()
{
if [ -z "$BC" ]; then
@@ -23,10 +23,13 @@ _supported_fs xfs
# single AG will cause xfs_repair to fail checks.
_require_scratch_nocheck
-_require_no_rtinherit
rm -f $seqres.full
+# Disable the scratch rt device to avoid test failures relating to the rt
+# bitmap consuming all the free space in our small data device.
+unset SCRATCH_RTDEV
+
fsblksz=1024
_scratch_mkfs_xfs -d size=$((32768*fsblksz)) -b size=$fsblksz >> $seqres.full 2>&1
_scratch_mount
@@ -34,12 +34,15 @@ _cleanup()
_supported_fs xfs
_require_scratch_nocheck # check complains about single AG fs
-_require_no_rtinherit
_require_xfs_io_command "fpunch"
_require_command $UUIDGEN_PROG uuidgen
rm -f $seqres.full
+# Disable the scratch rt device to avoid test failures relating to the rt
+# bitmap consuming all the free space in our small data device.
+unset SCRATCH_RTDEV
+
# Create a small fs with a large directory block size. We want to fill up the fs
# quickly and then create multi-fsb dirblocks over fragmented free space.
_scratch_mkfs_xfs -d size=20m -n size=64k >> $seqres.full 2>&1
@@ -32,7 +32,6 @@ _supported_fs xfs
_require_scratch
_require_error_injection
_require_xfs_io_error_injection "rmap_finish_one"
-_require_no_rtinherit
rm -f $seqres.full
@@ -43,6 +42,10 @@ echo "Format filesystem"
_scratch_mkfs >/dev/null 2>&1
_scratch_mount >> $seqres.full
+# This test depends on specific behaviors of the data device, so create all
+# files on it.
+$XFS_IO_PROG -c 'chattr -t' $SCRATCH_MNT
+
echo "Create files"
touch $SCRATCH_MNT/file1
@@ -39,11 +39,15 @@ _require_scratch
_require_test_program "punch-alternating"
_require_xfs_io_command "falloc"
_require_xfs_db_write_array
-_require_no_rtinherit
# This is only a v5 filesystem problem
_require_scratch_xfs_crc
+# 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
+
mount_loop() {
if ! _try_scratch_mount >> $seqres.full 2>&1; then
echo "scratch mount failed" >> $seqres.full