summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorDarrick J. Wong <darrick.wong@oracle.com>2020-09-17 19:08:33 -0700
committerEryu Guan <guaneryu@gmail.com>2020-09-21 01:09:06 +0800
commitc0eced58c6e1bd1ed548114e3ad050573fd3d3ce (patch)
tree915b5ffd0965f66f4f726674c1a389e21c291e6c /common
parent909f4322c62c7230b008af927a5d91ba1d1f199f (diff)
common/rc: teach _scratch_mkfs_sized to set a size on an xfs realtime volume
Generally speaking, tests that call _scratch_mkfs_sized are trying to constrain a test's run time by formatting a filesystem that's smaller than the device. The current helper does this for the scratch device, but it doesn't do this for the xfs realtime volume. If fstests has been configured to create files on the realtime device by default ("-d rtinherit=1) then those tests that want to run with a small volume size will instead be running with a huge realtime device. This makes certain tests take forever to run, so apply the same sizing to the rt volume if one exists. Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Reviewed-by: Zorro Lang <zlang@redhat.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Eryu Guan <guaneryu@gmail.com>
Diffstat (limited to 'common')
-rw-r--r--common/rc10
1 files changed, 8 insertions, 2 deletions
diff --git a/common/rc b/common/rc
index 4bee0c88..c1e8180b 100644
--- a/common/rc
+++ b/common/rc
@@ -976,14 +976,20 @@ _scratch_mkfs_sized()
[ "$fssize" -gt "$devsize" ] && _notrun "Scratch device too small"
fi
+ if [ "$FSTYP" = "xfs" ] && [ -b "$SCRATCH_RTDEV" ]; then
+ local rtdevsize=`blockdev --getsize64 $SCRATCH_RTDEV`
+ [ "$fssize" -gt "$rtdevsize" ] && _notrun "Scratch rt device too small"
+ rt_ops="-r size=$fssize"
+ fi
+
case $FSTYP in
xfs)
# don't override MKFS_OPTIONS that set a block size.
echo $MKFS_OPTIONS |egrep -q "b?size="
if [ $? -eq 0 ]; then
- _scratch_mkfs_xfs -d size=$fssize
+ _scratch_mkfs_xfs -d size=$fssize $rt_ops
else
- _scratch_mkfs_xfs -d size=$fssize -b size=$blocksize
+ _scratch_mkfs_xfs -d size=$fssize $rt_ops -b size=$blocksize
fi
;;
ext2|ext3|ext4|ext4dev)