[LTP] [PATCH 1/1] df01.sh: Use own fsfreeze implementation for XFS

Richard Palethorpe rpalethorpe@suse.de
Tue Oct 18 10:19:28 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.

-- 
Thank you,
Richard.


More information about the ltp mailing list