xfs/53[238]: Disable realtime inherit flag
authorChandan Babu R <chandanrlinux@gmail.com>
Fri, 9 Apr 2021 12:49:03 +0000 (18:19 +0530)
committerEryu Guan <guaneryu@gmail.com>
Sun, 11 Apr 2021 08:49:26 +0000 (16:49 +0800)
The minimum length space allocator (i.e.
xfs_bmap_exact_minlen_extent_alloc()) depends on the underlying
filesystem to be fragmented so that there are enough one block sized
extents available to satify space allocation requests.

xfs/{532,533,538} tests issue space allocation requests for metadata
(e.g. for blocks holding directory and xattr information). With
realtime filesystem instances, these tests would end up fragmenting
the space on realtime device. Hence minimum length space allocator
fails since the regular filesystem space is not fragmented and hence
there are no one block sized extents available.

Thus, this commit disables realtime inherit flag (if any) on root
directory so that space on data device gets fragmented rather than
realtime device.

Suggested-by: Darrick J. Wong <djwong@kernel.org>
Reported-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Chandan Babu R <chandanrlinux@gmail.com>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
tests/xfs/532
tests/xfs/533
tests/xfs/538

index 2bed574..560af58 100755 (executable)
@@ -45,6 +45,10 @@ echo "Format and mount fs"
 _scratch_mkfs_sized $((1024 * 1024 * 1024)) >> $seqres.full
 _scratch_mount >> $seqres.full
 
+# Disable realtime inherit flag (if any) on root directory so that space on data
+# device gets fragmented rather than realtime device.
+$XFS_IO_PROG -c 'chattr -t' $SCRATCH_MNT
+
 bsize=$(_get_block_size $SCRATCH_MNT)
 
 attr_len=255
index be909fc..dd4cb4c 100755 (executable)
@@ -56,6 +56,10 @@ echo "Format and mount fs"
 _scratch_mkfs_sized $((1024 * 1024 * 1024)) >> $seqres.full
 _scratch_mount >> $seqres.full
 
+# Disable realtime inherit flag (if any) on root directory so that space on data
+# device gets fragmented rather than realtime device.
+$XFS_IO_PROG -c 'chattr -t' $SCRATCH_MNT
+
 echo "Consume free space"
 fillerdir=$SCRATCH_MNT/fillerdir
 nr_free_blks=$(stat -f -c '%f' $SCRATCH_MNT)
index 90eb163..97273b8 100755 (executable)
@@ -42,6 +42,10 @@ echo "Format and mount fs"
 _scratch_mkfs_sized $((1024 * 1024 * 1024)) >> $seqres.full
 _scratch_mount >> $seqres.full
 
+# Disable realtime inherit flag (if any) on root directory so that space on data
+# device gets fragmented rather than realtime device.
+$XFS_IO_PROG -c 'chattr -t' $SCRATCH_MNT
+
 bsize=$(_get_file_block_size $SCRATCH_MNT)
 
 echo "Consume free space"