generic/223: make sure all files get created on the data device
authorDarrick J. Wong <djwong@kernel.org>
Wed, 21 Apr 2021 00:22:25 +0000 (17:22 -0700)
committerEryu Guan <guaneryu@gmail.com>
Sun, 25 Apr 2021 05:16:56 +0000 (13:16 +0800)
This test formats filesystems with various stripe alignments, then
checks that data file allocations are actually aligned to those stripe
geometries.  If this test is run on an XFS filesystem with a realtime
volume and RTINHERIT is set on the root dir, the test will fail because
all new files will be created as realtime files, and realtime
allocations are not subject to data device stripe alignments.  Fix this
by clearing rtinherit on the root dir.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Allison Henderson <allison.henderson@oracle.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
tests/generic/223

index 1f85efe..f639329 100755 (executable)
@@ -43,6 +43,11 @@ for SUNIT_K in 8 16 32 64 128; do
        _scratch_mkfs_geom $SUNIT_BYTES 4 $BLOCKSIZE >> $seqres.full 2>&1
        _scratch_mount
 
+       # This test checks for stripe alignments of space allocations on the
+       # filesystem.  Make sure all files get created on the main device,
+       # which for XFS means no rt files.
+       test "$FSTYP" = "xfs" && $XFS_IO_PROG -c 'chattr -t' $SCRATCH_MNT
+
        for SIZE_MULT in 1 2 8 64 256; do
                let SIZE=$SIZE_MULT*$SUNIT_BYTES