From: Darrick J. Wong Date: Tue, 7 May 2019 16:57:09 +0000 (-0700) Subject: xfs/294: calculate space to reserve for fragmentation test X-Git-Tag: v2022.05.01~1171 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=d123585ea0d092cc65102d10b63a4b5841f809e0;p=users%2Fhch%2Fxfstests-dev.git xfs/294: calculate space to reserve for fragmentation test This test requires us to fragment free space, and in part accomplishes this by fallocating 400M of a 512M filesystem, then fallocating another 70M, and then using dd to eat remaining space. However, it's risky to assume the 400M figure because new features such as reflink and rmap have per-ag metadata reservations which add to overhead. Therefore, reserve the 70M fragment file first, then try to fallocate 95% of the remaining free space. Signed-off-by: Darrick J. Wong Tested-by: Yang Xu Signed-off-by: Eryu Guan --- diff --git a/tests/xfs/294 b/tests/xfs/294 index bce4d07bd..af0fc1248 100755 --- a/tests/xfs/294 +++ b/tests/xfs/294 @@ -70,15 +70,16 @@ for I in `seq 1 100`; do touch $SCRATCH_MNT/testdir/12345678901234567890$I; done -# Now completely fragment freespace. -# Consume most of it: -$XFS_IO_PROG -f -c "falloc 0 400m" $SCRATCH_MNT/fillfile || - _fail "Could not allocate space" - # File to fragment: $XFS_IO_PROG -f -c "falloc 0 70m" $SCRATCH_MNT/fragfile || _fail "Could not allocate space" +# Now completely fragment freespace. +# Consume most of it: +space=$(stat -f -c '%f * %S * 95 / 100' $SCRATCH_MNT | $BC_PROG) +$XFS_IO_PROG -f -c "falloc 0 $space" $SCRATCH_MNT/fillfile || + _fail "Could not allocate space" + df -h $SCRATCH_MNT >> $seqres.full 2>&1 # Fill remaining space; let this run to failure