On Mon, Oct 29, 2018 at 11:33 AM Qu Wenruo <quwenruo.bt...@gmx.com> wrote: > > > > On 2018/10/29 下午5:52, Filipe Manana wrote: > > On Mon, Oct 29, 2018 at 6:31 AM Qu Wenruo <w...@suse.com> wrote: > >> > >> For latest kernel, there is a chance that btrfs/057 reports false > >> errors. > > > > By latest kernel you mean 4.20? > > I mean almost all kernels.
So s/For latest kernel/For any recent kernel/ or something like that which isn't singular. > > > > >> > >> The false error would look like: > >> btrfs/057 4s ... - output mismatch (see > >> /home/adam/xfstests-dev/results//btrfs/057.out.bad) > >> --- tests/btrfs/057.out 2017-08-21 09:25:33.166666666 +0800 > >> +++ /home/adam/xfstests-dev/results//btrfs/057.out.bad 2018-10-29 > >> 14:07:28.443651293 +0800 > >> @@ -1,3 +1,3 @@ > >> QA output created by 057 > >> 4096 4096 > >> -4096 4096 > >> +28672 28672 > >> > >> This is related to the fact that "btrfs subvolume sync" (or > >> vanilla sync) will not ensure orphan (unlinked but still exist) files to > >> be removed. > > > > So when did that happen, which commit introduced the behaviour change? > > No behavior change, it's always the case. > Just not that easy to hit. > > Thanks, > Qu > > > > >> > >> In fact, for that false error case, if inspecting the fs after umount, > >> its qgroup number is correct and btrfs check won't report qgroup error. > >> > >> To fix the false alerts, just skip any manual qgroup number comparison, > >> and let fsck done after the test case to detect problem. > >> > >> This also elimiate the necessary of using specified mount and mkfs > >> option, allowing us to improve coverage. > >> > >> Reported-by: Nikolay Borisov <nbori...@suse.com> > >> Signed-off-by: Qu Wenruo <w...@suse.com> Anyway, looks good to me. Reviewed-by: Filipe Manana <fdman...@suse.com> > >> --- > >> tests/btrfs/057 | 17 ++++------------- > >> tests/btrfs/057.out | 3 +-- > >> 2 files changed, 5 insertions(+), 15 deletions(-) > >> > >> diff --git a/tests/btrfs/057 b/tests/btrfs/057 > >> index b019f4e1..0b5a36d3 100755 > >> --- a/tests/btrfs/057 > >> +++ b/tests/btrfs/057 > >> @@ -33,12 +33,9 @@ _require_scratch > >> rm -f $seqres.full > >> > >> # use small leaf size to get higher btree height. > >> -run_check _scratch_mkfs "-b 1g --nodesize 4096" > >> +run_check _scratch_mkfs "-b 1g" > >> > >> -# inode cache is saved in the FS tree itself for every > >> -# individual FS tree,that affects the sizes reported by qgroup show > >> -# so we need to explicitly turn it off to get consistent values. > >> -_scratch_mount "-o noinode_cache" > >> +_scratch_mount > >> > >> # -w ensures that the only ops are ones which cause write I/O > >> run_check $FSSTRESS_PROG -d $SCRATCH_MNT -w -p 5 -n 1000 \ > >> @@ -53,14 +50,8 @@ run_check $FSSTRESS_PROG -d $SCRATCH_MNT/snap1 -w -p 5 > >> -n 1000 \ > >> _run_btrfs_util_prog quota enable $SCRATCH_MNT > >> _run_btrfs_util_prog quota rescan -w $SCRATCH_MNT > >> > >> -# remove all file/dir other than subvolume > >> -rm -rf $SCRATCH_MNT/snap1/* >& /dev/null > >> -rm -rf $SCRATCH_MNT/p* >& /dev/null > >> - > >> -_run_btrfs_util_prog filesystem sync $SCRATCH_MNT > >> -units=`_btrfs_qgroup_units` > >> -$BTRFS_UTIL_PROG qgroup show $units $SCRATCH_MNT | $SED_PROG -n > >> '/[0-9]/p' \ > >> - | $AWK_PROG '{print $2" "$3}' > >> +echo "Silence is golden" > >> +# btrfs check will detect any qgroup number mismatch. > >> > >> status=0 > >> exit > >> diff --git a/tests/btrfs/057.out b/tests/btrfs/057.out > >> index 60cb92d0..185023c7 100644 > >> --- a/tests/btrfs/057.out > >> +++ b/tests/btrfs/057.out > >> @@ -1,3 +1,2 @@ > >> QA output created by 057 > >> -4096 4096 > >> -4096 4096 > >> +Silence is golden > >> -- > >> 2.18.0 > >> > > > > > -- Filipe David Manana, “Whether you think you can, or you think you can't — you're right.”