[LTP] [PATCH 1/1] df01.sh: Use own fsfreeze implementation for XFS
Petr Vorel
pvorel@suse.cz
Tue Oct 18 10:41:13 CEST 2022
> Hello,
> Petr Vorel <pvorel@suse.cz> writes:
> > Hi Richie,
> >> Hello,
> >> Petr Vorel <pvorel@suse.cz> writes:
> >> > df01.sh started to fail on XFS on certain configuration since mkfs.xfs
> >> > and kernel 5.19. Implement fsfreeze instead of introducing external
> >> > dependency. NOTE: implementation could fail on other filesystems
> >> > (EOPNOTSUPP on exfat, ntfs, vfat).
> >> > Suggested-by: Darrick J. Wong <djwong@kernel.org>
> >> > Suggested-by: Eric Sandeen <sandeen@redhat.com>
> >> > Signed-off-by: Petr Vorel <pvorel@suse.cz>
> >> > ---
> >> > Hi,
> >> > FYI the background of this issue:
> >> > https://lore.kernel.org/ltp/Yv5oaxsX6z2qxxF3@magnolia/
> >> > https://lore.kernel.org/ltp/974cc110-d47e-5fae-af5f-e2e610720e2d@redhat.com/
> >> > @LTP developers: not sure if the consensus is to avoid LTP API
> >> > completely (even use it just with TST_NO_DEFAULT_MAIN), if required I
> >> Why would that be the consensus? :-)
> > $ ls testcases/lib/*.c |wc -l
> > 19
> > $ git grep -l TST_NO_DEFAULT_MAIN testcases/lib/*.c |wc -l
> > 9
> > => 10 tests not use tst_test.h at all.
> > => none is *not* defining TST_NO_DEFAULT_MAIN (not a big surprise),
> > but 2 of them (testcases/lib/tst_device.c, testcases/lib/tst_get_free_pids.c)
> > implement workaround to force messages to be printed from the new library
> > (tst_test.c).
> Possibly the reason for this is that it's not clear whether some core
> library functions will work as expected if we create an executable with
> TST_NO_DEFAULT_MAIN.
> However most stuff works fine.
> > static struct tst_test test = {
> > };
> > tst_test = &test;
> > My opinion also was based on Cyril's comments on nfs05_make_tree.c patch, but he
> > probably meant to just use TST_NO_DEFAULT_MAIN instead of struct tst_test test:
> > https://lore.kernel.org/ltp/YqxFo1iFzHatNRIl@yuki/
> Certainly we shouldn't put a test struct in anything which is not a
> test. Possibly we could create a util struct
> >> > can rewrite to use it just to get SAFE_*() macros (like
> >> > testcases/lib/tst_checkpoint.c) or even with tst_test workarounds
> >> > (testcases/lib/tst_get_free_pids.c).
> >> Yes, it should work fine with TST_NO_DEFAULT_MAIN
> > Both versions IMHO work well, the question what we prefer more.
> > Do you vote for rewriting?
> Yes, avoiding the LTP library caused a number of problems in sparse-ltp
> and the ltx prototype. Then I found linking in the LTP libs with
> TST_NO_DEFAULT_MAIN to ltx and using tst_res(TBROK, ...) etc. worked
> fine.
Well, this simple utility works without LTP library. It's more a matter of
style. OK, I'll send TST_NO_DEFAULT_MAIN version and let the community decide.
Kind regards,
Petr
More information about the ltp
mailing list