mkfs.xfs since v5.19.0-rc1 [1] refuses to create filesystems < 300 MB. Reuse workaround intended for fstests: set 3 environment variables: export TEST_DIR=1 TEST_DEV=1 QA_CHECK_FS=1 Workaround added to both C API (for .needs_device) and shell API (for TST_NEEDS_DEVICE=1). Fix includes any use of filesystem (C API: .all_filesystems, .format_device, shell API: TST_MOUNT_DEVICE=1, TST_FORMAT_DEVICE=1). Fixes various C and shell API failures, e.g.: ./mkfs01.sh -f xfs mkfs01 1 TINFO: timeout per run is 0h 5m 0s tst_device.c:89: TINFO: Found free device 0 '/dev/loop0' mkfs01 1 TFAIL: 'mkfs -t xfs -f /dev/loop0 ' failed. Filesystem must be larger than 300MB. ./creat09 ... tst_test.c:1599: TINFO: Testing on xfs tst_test.c:1064: TINFO: Formatting /dev/loop0 with xfs opts='' extra opts='' Filesystem must be larger than 300MB. Link: https://lore.kernel.org/all/164738662491.3191861.15611882856331908607.stgit@magnolia/ Reported-by: Martin Doucha <mdoucha@xxxxxxx> Signed-off-by: Petr Vorel <pvorel@xxxxxxx> --- Dave, please next time remember there are other testsuites testing XFS, not just fstests :). How long do you plan to keep this workaround? LTP community: do we want to depend on this behavior or we just increase from 256MB to 301 MB (either for XFS or for all). It might not be a good idea to test size users are required to use. Kind regards, Petr lib/tst_test.c | 7 +++++++ testcases/lib/tst_test.sh | 6 +++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/tst_test.c b/lib/tst_test.c index 4b4dd125d..657348732 100644 --- a/lib/tst_test.c +++ b/lib/tst_test.c @@ -1160,6 +1160,13 @@ static void do_setup(int argc, char *argv[]) if (tst_test->all_filesystems) tst_test->needs_device = 1; + /* allow to use XFS filesystem < 300 MB */ + if (tst_test->needs_device) { + putenv("TEST_DIR=1"); + putenv("TEST_DEV=1"); + putenv("QA_CHECK_FS=1"); + } + if (tst_test->min_cpus > (unsigned long)tst_ncpus()) tst_brk(TCONF, "Test needs at least %lu CPUs online", tst_test->min_cpus); diff --git a/testcases/lib/tst_test.sh b/testcases/lib/tst_test.sh index 24a3d29d8..b42e54ca1 100644 --- a/testcases/lib/tst_test.sh +++ b/testcases/lib/tst_test.sh @@ -671,7 +671,11 @@ tst_run() [ "$TST_MOUNT_DEVICE" = 1 ] && TST_FORMAT_DEVICE=1 [ "$TST_FORMAT_DEVICE" = 1 ] && TST_NEEDS_DEVICE=1 - [ "$TST_NEEDS_DEVICE" = 1 ] && TST_NEEDS_TMPDIR=1 + if [ "$TST_NEEDS_DEVICE" = 1 ]; then + TST_NEEDS_TMPDIR=1 + # allow to use XFS filesystem < 300 MB + export TEST_DIR=1 TEST_DEV=1 QA_CHECK_FS=1 + fi if [ "$TST_NEEDS_TMPDIR" = 1 ]; then if [ -z "$TMPDIR" ]; then -- 2.37.1