Re: [PATCH v2] fstests: btrfs/340: add support for older kernels/progs
Zorro Lang <[email protected]>
| Newsgroups | org.kernel.vger.fstests,org.kernel.vger.linux-btrfs |
|---|---|
| Message-ID | <agh3zgP9C9EPn_HS@zlang-mailbox> |
On Sat, May 16, 2026 at 08:48:55AM +0930, Qu Wenruo wrote: > > > 在 2026/5/16 02:25, Zorro Lang 写道: > > On Thu, May 14, 2026 at 06:34:39PM +0930, Qu Wenruo wrote: > > > The test case will fail on older distros like SLE12-SP5, there are two > > > problems on the test case itself: > > > > > > - Requires "--sync" option from "btrfs qgroup show" subcommand > > > That option was introduecd in v4.9.1, thus there are still some older > > > distros using that very old version. > > > > > > - Not all kernels support quick inherit > > > The kernel commit introducing the quick inherit is 6.9, thus some > > > supported LTS kernels do not have that commit. > > > > > > In that case qgroup will just be marked inconsistent, this will cause > > > the later "btrfs qgroup show" command to output a warning due to the > > > inconsistent flag. > > > > > > Fix both problems by: > > > > > > - Require "--sync" option from "btrfs qgroup show" subcommand > > > So older distros will just skip the test. > > > > > > - Redirect all output from "btrfs qgroup show" to $seqres.full > > > So older kernels can still pass the test case by marking qgroup > > > inconsitent. > > > > > > Reported-by: Long An <[email protected]> > > > Signed-off-by: Qu Wenruo <[email protected]> > > > --- > > > Changelog: > > > v2: > > > - Fix the mismatch between the commit message and the test case change > > > Forgot to amend the changes before sending. > > > > > > - Fix a bug in the stderr redirect > > > The stdout redirect should be put last. > > > > Sorry, did I miss part of the discussion? Why did v2 switch to notrun for > > older tools instead of using the compatible `btrfs filesystem sync` from v1? > > Was there something wrong with the v1 method :) > > The main concern is the progs used in those tests can be really old, I mean > there is no supported LTS kernel from that time period anymore. > > With that old progs, I'm not confident enough to trust the progs to do all > the qgroup numbers verification. > > Nor do I even have an environment at hand to compile that old progs. > > That's why in v2 I switch to skip the test case completely if the old progs > doesn't even support "btrfs qgroup show --sync". Oh, that explanation makes sense. I trust your judgment on this as a core btrfs developer. If there are no other review points from the btrfs list, I'll drop v1 and merge v2. Thanks! Reviewed-by: Zorro Lang <[email protected]> > > Thanks, > Qu > > > > > Thanks, > > Zorro > > > > > --- > > > tests/btrfs/340 | 8 +++++++- > > > 1 file changed, 7 insertions(+), 1 deletion(-) > > > > > > diff --git a/tests/btrfs/340 b/tests/btrfs/340 > > > index 872f790cb975..eff76d0b633c 100755 > > > --- a/tests/btrfs/340 > > > +++ b/tests/btrfs/340 > > > @@ -16,6 +16,7 @@ _fixed_by_kernel_commit 68d4b3fa18d7 \ > > > # For the automatic fsck at unmount. > > > _require_scratch > > > _require_btrfs_qgroup_report > > > +_require_btrfs_command qgroup show --sync > > > # This will imply mkfs and enable regular qgroup. > > > _require_scratch_qgroup > > > @@ -39,7 +40,12 @@ _btrfs qgroup show -p --sync $SCRATCH_MNT >> $seqres.full > > > # without marking qgroup inconsistent. > > > _btrfs subv snap -i 1/1 $SCRATCH_MNT/subv1 $SCRATCH_MNT/snap1 > > > echo "After quick inherit:" >> $seqres.full > > > -_btrfs qgroup show -p --sync $SCRATCH_MNT >> $seqres.full > > > +# Redirect all output to seqres.full including stderr. > > > +# For older kernels without quick inherit support, it will mark > > > +# qgroup inconsistent, which will output a warning about the inconsistent > > > +# numbers. Here we rely on the final btrfs check to catch any qgroup number > > > +# errors, thus no need to bother that possible warning. > > > +_btrfs qgroup show -p --sync $SCRATCH_MNT >> $seqres.full 2>&1 > > > echo "Silence is golden" > > > _exit 0 > > > -- > > > 2.54.0 > > > > > > > >