[LTP] [RFC PATCH 1/1] API: Allow to use xfs filesystems < 300 MB
Petr Vorel
pvorel@suse.cz
Wed Aug 17 22:40:15 CEST 2022
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@suse.cz>
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
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
More information about the ltp
mailing list