[LTP] [PATCH 2/2] df01.sh: Use tst_fsfreeze for XFS on kernel >= 5.19

Petr Vorel pvorel@suse.cz
Mon Mar 13 16:30:09 CET 2023


> On 3/13/23 9:38 AM, Cyril Hrubis wrote:
> > Hi!
> >> XFS since kernel 5.19 postpone certain operation.  Use LTP fsfreeze
> >> implementation to force all the background garbage collection to run
> >> to completion.

> >> Link: https://lore.kernel.org/linux-block/974cc110-d47e-5fae-af5f-e2e610720e2d@redhat.com/
> >> Suggested-by: Eric Sandeen <sandeen@redhat.com>
> >> Signed-off-by: Petr Vorel <pvorel@suse.cz>
> >> ---
> >>  testcases/commands/df/df01.sh | 7 ++++++-
> >>  1 file changed, 6 insertions(+), 1 deletion(-)

> >> diff --git a/testcases/commands/df/df01.sh b/testcases/commands/df/df01.sh
> >> index ae0449c3c..699d1538f 100755
> >> --- a/testcases/commands/df/df01.sh
> >> +++ b/testcases/commands/df/df01.sh
> >> @@ -1,7 +1,7 @@
> >>  #!/bin/sh
> >>  # SPDX-License-Identifier: GPL-2.0-or-later
> >>  # Copyright (c) 2015 Fujitsu Ltd.
> >> -# Copyright (c) 2018-2022 Petr Vorel <pvorel@suse.cz>
> >> +# Copyright (c) 2018-2023 Petr Vorel <pvorel@suse.cz>
> >>  # Author: Zhang Jin <jy_zhangjin@cn.fujitsu.com>

> >>  # Test df command with some basic options.
> >> @@ -46,6 +46,11 @@ df_test()

> >>  	ROD_SILENT rm -rf $TST_MNTPOINT/testimg

> >> +	# force all the background garbage collection to run to completion
> >> +	if [ "$TST_FS_TYPE" = "xfs" ] && tst_kvcmp -ge "5.19"; then
> >> +		tst_fsfreeze $TST_MNTPOINT
> >> +	fi

> > This looks overly specific, can't we just freeze and unfreeze the FS
> > without looking at kernel version? Or will we get errors on older XFS?

> > I suppose that this may still start to fail on distribution kernels if
> > some of the newer functionality gets backported...

So far it's OK on SLES, likely nothing related has been backported to it.
I wonder if we should remove the check or just wait till first complaint.

> Yup, I agree. Freeze should be safe for any kernel, I wouldn't condition it either.

> (You do want to be very sure that you're not freezing the root fs, tho,
> if that is any possibility.)

$TST_MNTPOINT in on $TMPDIR, which is by default /tmp. In case of /tmp being on
root fs we're freezing root tmpfs. But it works on openSUSE, which found the
problem.

Kind regards,
Petr

> -Eric

> > Otherwise it looks good.




More information about the ltp mailing list