On Fri, Aug 15, 2025 at 04:02:12PM +0800, Chao Yu wrote: > On 8/15/25 05:18, Zorro Lang wrote: > > On Thu, Aug 14, 2025 at 05:07:12PM +0800, Chao Yu wrote: > >> This is a regression test: > >> 1. create directory > >> 2. add a new xattr entry to create xattr node > >> 3. use inject.f2fs to inject nid of xattr node w/ ino in a file > >> 4. check whether f2fs kernel module will detect and report such > >> corruption in the file > >> > >> Cc: Jaegeuk Kim <jaeg...@kernel.org> > >> Signed-off-by: Chao Yu <c...@kernel.org> > >> --- > >> v3: > >> - use _require_scratch_nocheck instead of _require_scratch > >> - add missing _require_attrs user > >> - add comments for why exporting MKFS_OPTIONS="" > >> tests/f2fs/020 | 51 ++++++++++++++++++++++++++++++++++++++++++++++ > >> tests/f2fs/020.out | 2 ++ > >> 2 files changed, 53 insertions(+) > >> create mode 100755 tests/f2fs/020 > >> create mode 100644 tests/f2fs/020.out > >> > >> diff --git a/tests/f2fs/020 b/tests/f2fs/020 > >> new file mode 100755 > >> index 00000000..7ce1f92f > >> --- /dev/null > >> +++ b/tests/f2fs/020 > >> @@ -0,0 +1,51 @@ > >> +#! /bin/bash > >> +# SPDX-License-Identifier: GPL-2.0 > >> +# Copyright (c) 2025 Chao Yu. All Rights Reserved. > >> +# > >> +# FS QA Test No. f2fs/020 > >> +# > >> +# This is a regression test: > >> +# 1. create directory > >> +# 2. add a new xattr entry to create xattr node > >> +# 3. use inject.f2fs to inject nid of xattr node w/ ino in a file > >> +# 4. check whether f2fs kernel module will detect and report such > >> +# corruption in the file > >> +# > >> +. ./common/preamble > >> +_begin_fstest auto quick rw > >> + > >> +. ./common/attr > >> + > >> +_fixed_by_kernel_commit 061cf3a84bde \ > >> + "f2fs: fix to do sanity check on ino and xnid" > >> + > >> +_require_scratch_nocheck > >> +_require_command "$F2FS_INJECT_PROG" inject.f2fs > >> +_require_attrs user > >> + > >> +# remove all mkfs options to avoid layout change of on-disk inode > >> +export MKFS_OPTIONS="" > >> + > >> +testdir=$SCRATCH_MNT/testdir > >> + > >> +_scratch_mkfs >> $seqres.full > >> +_scratch_mount "-o user_xattr,noinline_xattr" > >> + > >> +mkdir $testdir > >> +# add a new xattr entry to create xattr node > >> +$SETFATTR_PROG -n user.abc -v 123 $testdir > >> + > >> +_scratch_unmount > >> + > >> +# inject i_xattr_nid w/ nid of inode node > >> +$F2FS_INJECT_PROG --node --mb i_xattr_nid --nid 4 --val 4 $SCRATCH_DEV >> > >> $seqres.full > > Zorro, I missed one thing, this testcase relies on a f2fs-tools patch, please > apply > this before running the testcase. > > https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git/commit/?h=dev-test&id=2174461cdd0a22edc5e7d172605bff4740582438 > > Do I need to create a _require_* function for f2fs to verify whether > f2fs-tools > support the required feature or not?
Actually for further f2fs testing (depends on injection), we'd better to have related functions, you can refer to: _require_xfs_db_command Or more xfs_db related functions in common/xfs if you need. If you don't want to add this _require_ function in this patch (this's not the only one f2fs case uses inject.f2fs), I think you can send another patchset to do that later (just let this case fails on old f2fs temporarily :). Thanks, Zorro > > >> + > >> +_scratch_mount > > Oh, I may missed to add "-o acl,user_xattr" here. > > >> +# may potentially trigger a deadlock w/ double inode_lock on parent's > >> inode > >> +mkdir $testdir/dir >> $seqres.full 2>&1 > >> +_scratch_unmount > > > > Can you provide a test result to prove this test case trigger a failure > > on general kernel (not debug kernel). If it can, then this version is good > > to me :) > > Well, expectation is it will hang kernel, so that the f2fs/020 will stop here > once we encounter the issue. > > Thanks, > > > > > Thanks, > > Zorro > > > >> + > >> +echo "Silence is golden" > >> + > >> +status=0 > >> +exit > >> diff --git a/tests/f2fs/020.out b/tests/f2fs/020.out > >> new file mode 100644 > >> index 00000000..20d7944e > >> --- /dev/null > >> +++ b/tests/f2fs/020.out > >> @@ -0,0 +1,2 @@ > >> +QA output created by 020 > >> +Silence is golden > >> -- > >> 2.49.0 > >> > > > _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel