On Wed, Apr 10, 2024 at 05:07:20PM +1000, David Disseldorp wrote: > As of xfsprogs commit 6e0ed3d1 ("mkfs: stop allowing tiny filesystems") > attempts to create XFS filesystems sized under 300M fail. > > Lacking MIN_FSSIZE configuration, failure of _scratch_mkfs_sized() in > generic/027 doesn't halt the test, leading _scratch_mount() to mount any > previously created (full-size) filesystem. As a result create_file() > may loop near-endlessly awaiting ENOSPC. > > Use a 300M sized filesystem to support XFS' limit, and explicitly check > for _scratch_mkfs_sized() failure to avoid endless loops if the limit > changes again in future. Hmmm. Does your test environment export (as in, the bash keyword) TEST_DEV and TEST_DIR? mkfs.xfs is supposed to detect fstests and allow sub-300M filesystems for testing. The detection breaks if TEST_{DEV,DIR} are set but not exported in the config file; perhaps fstests ought to be exporting them like it does for the <cough> other detection key. --D > Signed-off-by: David Disseldorp <ddiss@xxxxxxx> > --- > tests/generic/027 | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/tests/generic/027 b/tests/generic/027 > index 47f1981d..4f8cf6d8 100755 > --- a/tests/generic/027 > +++ b/tests/generic/027 > @@ -35,13 +35,14 @@ _require_scratch > > echo "Silence is golden" > > -_scratch_mkfs_sized $((256 * 1024 * 1024)) >>$seqres.full 2>&1 > +_scratch_mkfs_sized $((300 * 1024 * 1024)) >>$seqres.full 2>&1 \ > + || _fail "_scratch_mkfs_sized failed" > _scratch_mount > > echo "Reserve 2M space" >>$seqres.full > $XFS_IO_PROG -f -c "pwrite 0 2m" $SCRATCH_MNT/testfile >>$seqres.full 2>&1 > echo "Fulfill the fs" >>$seqres.full > -$XFS_IO_PROG -f -c "pwrite 0 254m" $SCRATCH_MNT/bigfile >>$seqres.full 2>&1 > +$XFS_IO_PROG -f -c "pwrite 0 298m" $SCRATCH_MNT/bigfile >>$seqres.full 2>&1 > echo "Remove reserved file" >>$seqres.full > rm -f $SCRATCH_MNT/testfile > > -- > 2.35.3 > >