* [f2fs-dev] [PATCH] common/f2fs: introduce _require_inject_f2fs_command() @ 2025-09-28 18:52 Chao Yu via Linux-f2fs-devel 2025-10-01 6:24 ` Zorro Lang via Linux-f2fs-devel 0 siblings, 1 reply; 3+ messages in thread From: Chao Yu via Linux-f2fs-devel @ 2025-09-28 18:52 UTC (permalink / raw) To: Zorro Lang, fstests; +Cc: jaegeuk, linux-f2fs-devel Introduce _require_inject_f2fs_command() to check whether inject.f2fs supports specific metaarea and member parameters. Cc: Jaegeuk Kim <jaegeuk@kernel.org> Signed-off-by: Chao Yu <chao@kernel.org> --- common/f2fs | 25 +++++++++++++++++++++++++ tests/f2fs/009 | 2 ++ tests/f2fs/012 | 2 ++ tests/f2fs/019 | 2 ++ tests/f2fs/020 | 2 ++ tests/f2fs/022 | 2 ++ 6 files changed, 35 insertions(+) diff --git a/common/f2fs b/common/f2fs index 1b39d8ce..4b01e032 100644 --- a/common/f2fs +++ b/common/f2fs @@ -25,3 +25,28 @@ _require_scratch_f2fs_compression() _scratch_unmount fi } + +# check that inject.f2fs supports to inject specific field in specific meta area +_require_inject_f2fs_command() +{ + if [ $# -ne 2 ]; then + echo "Usage: _require_inject_f2fs_command metaarea member" 1>&2 + _exit 1 + fi + metaarea=$1 + member=$2 + + case $metaarea in + sb|cp|nat|sit) + val=0 + ;; + ssa|node|dent) + ;; + *) + _notrun "unsupport metaarea: $metaarea" + ;; + esac + + $F2FS_INJECT_PROG "--$metaarea" "$val" "-h" | grep "$member:" > /dev/null || \ + _notrun "--$metaarea --mb $member support is missing" +} diff --git a/tests/f2fs/009 b/tests/f2fs/009 index 7333d484..465be874 100755 --- a/tests/f2fs/009 +++ b/tests/f2fs/009 @@ -9,10 +9,12 @@ # and expects fsck.f2fs can detect such corruption and do the repair. # . ./common/preamble +. ./common/f2fs _begin_fstest auto quick _require_scratch _require_command "$F2FS_INJECT_PROG" inject.f2fs +_require_inject_f2fs_command node i_links _require_command "$(type -P socket)" socket _fixed_by_git_commit f2fs-tools 958cd6e \ diff --git a/tests/f2fs/012 b/tests/f2fs/012 index 7438d9ce..8e156772 100755 --- a/tests/f2fs/012 +++ b/tests/f2fs/012 @@ -12,6 +12,7 @@ # 4.enable linear lookup, expect lookup succeed # . ./common/preamble +. ./common/f2fs _begin_fstest auto quick casefold _fixed_by_kernel_commit 91b587ba79e1 \ @@ -21,6 +22,7 @@ export LC_ALL=C.UTF-8 _require_scratch_nocheck _require_command "$F2FS_IO_PROG" f2fs_io _require_command "$F2FS_INJECT_PROG" inject.f2fs +_require_inject_f2fs_command dent d_hash #check whether f2fs supports "lookup_mode=x" mount option mntopt="" diff --git a/tests/f2fs/019 b/tests/f2fs/019 index 2307bd96..f6bb0b52 100755 --- a/tests/f2fs/019 +++ b/tests/f2fs/019 @@ -12,6 +12,7 @@ # corruption in the file # . ./common/preamble +. ./common/f2fs _begin_fstest auto quick rw _fixed_by_kernel_commit 77de19b6867f \ @@ -19,6 +20,7 @@ _fixed_by_kernel_commit 77de19b6867f \ _require_scratch_nocheck _require_command "$F2FS_INJECT_PROG" inject.f2fs +_require_inject_f2fs_command node addr # remove all mkfs options to avoid layout change of on-disk inode export MKFS_OPTIONS="" diff --git a/tests/f2fs/020 b/tests/f2fs/020 index 38bc6582..332848d0 100755 --- a/tests/f2fs/020 +++ b/tests/f2fs/020 @@ -12,6 +12,7 @@ # corruption in the file # . ./common/preamble +. ./common/f2fs _begin_fstest auto quick rw . ./common/attr @@ -21,6 +22,7 @@ _fixed_by_kernel_commit 061cf3a84bde \ _require_scratch_nocheck _require_command "$F2FS_INJECT_PROG" inject.f2fs +_require_inject_f2fs_command node i_xattr_nid _require_attrs user # remove all mkfs options to avoid layout change of on-disk inode diff --git a/tests/f2fs/022 b/tests/f2fs/022 index ed3b4f2b..f81180e8 100755 --- a/tests/f2fs/022 +++ b/tests/f2fs/022 @@ -11,6 +11,7 @@ # 4. fpunch in foo w/ specified range # . ./common/preamble +. ./common/f2fs _begin_fstest auto quick rw . ./common/attr @@ -20,6 +21,7 @@ _fixed_by_kernel_commit xxxxxxxxxxxx \ _require_scratch_nocheck _require_command "$F2FS_INJECT_PROG" inject.f2fs +_require_inject_f2fs_command node i_nid # remove all mkfs options to avoid layout change of on-disk inode export MKFS_OPTIONS="" -- 2.40.1 _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel ^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [f2fs-dev] [PATCH] common/f2fs: introduce _require_inject_f2fs_command() 2025-09-28 18:52 [f2fs-dev] [PATCH] common/f2fs: introduce _require_inject_f2fs_command() Chao Yu via Linux-f2fs-devel @ 2025-10-01 6:24 ` Zorro Lang via Linux-f2fs-devel 2025-10-09 8:35 ` Chao Yu via Linux-f2fs-devel 0 siblings, 1 reply; 3+ messages in thread From: Zorro Lang via Linux-f2fs-devel @ 2025-10-01 6:24 UTC (permalink / raw) To: Chao Yu; +Cc: jaegeuk, Zorro Lang, fstests, linux-f2fs-devel On Mon, Sep 29, 2025 at 02:52:40AM +0800, Chao Yu wrote: > Introduce _require_inject_f2fs_command() to check whether inject.f2fs > supports specific metaarea and member parameters. > > Cc: Jaegeuk Kim <jaegeuk@kernel.org> > Signed-off-by: Chao Yu <chao@kernel.org> > --- > common/f2fs | 25 +++++++++++++++++++++++++ > tests/f2fs/009 | 2 ++ > tests/f2fs/012 | 2 ++ > tests/f2fs/019 | 2 ++ > tests/f2fs/020 | 2 ++ > tests/f2fs/022 | 2 ++ > 6 files changed, 35 insertions(+) > > diff --git a/common/f2fs b/common/f2fs You remind me that there's a common/f2fs file, you can move f2fs specific functions to common/f2fs (e.g. _check_f2fs_filesystem) later :) > index 1b39d8ce..4b01e032 100644 > --- a/common/f2fs > +++ b/common/f2fs > @@ -25,3 +25,28 @@ _require_scratch_f2fs_compression() > _scratch_unmount > fi > } > + > +# check that inject.f2fs supports to inject specific field in specific meta area > +_require_inject_f2fs_command() > +{ > + if [ $# -ne 2 ]; then > + echo "Usage: _require_inject_f2fs_command metaarea member" 1>&2 > + _exit 1 > + fi > + metaarea=$1 > + member=$2 > + > + case $metaarea in > + sb|cp|nat|sit) > + val=0 > + ;; > + ssa|node|dent) > + ;; > + *) > + _notrun "unsupport metaarea: $metaarea" > + ;; > + esac > + > + $F2FS_INJECT_PROG "--$metaarea" "$val" "-h" | grep "$member:" > /dev/null || \ > + _notrun "--$metaarea --mb $member support is missing" > +} > diff --git a/tests/f2fs/009 b/tests/f2fs/009 > index 7333d484..465be874 100755 > --- a/tests/f2fs/009 > +++ b/tests/f2fs/009 > @@ -9,10 +9,12 @@ > # and expects fsck.f2fs can detect such corruption and do the repair. > # > . ./common/preamble > +. ./common/f2fs The common/f2fs can be imported by common/config:_source_specific_fs() automatically, so we don't need this line at here. (Same below) > _begin_fstest auto quick > > _require_scratch > _require_command "$F2FS_INJECT_PROG" inject.f2fs > +_require_inject_f2fs_command node i_links If the "_require_command $F2FS_INJECT_PROG inject.f2fs" is always required before _require_inject_f2fs_command, how about call it at the beginning of _require_inject_f2fs_command ? (same below) Thanks, Zorro > _require_command "$(type -P socket)" socket > > _fixed_by_git_commit f2fs-tools 958cd6e \ > diff --git a/tests/f2fs/012 b/tests/f2fs/012 > index 7438d9ce..8e156772 100755 > --- a/tests/f2fs/012 > +++ b/tests/f2fs/012 > @@ -12,6 +12,7 @@ > # 4.enable linear lookup, expect lookup succeed > # > . ./common/preamble > +. ./common/f2fs > _begin_fstest auto quick casefold > > _fixed_by_kernel_commit 91b587ba79e1 \ > @@ -21,6 +22,7 @@ export LC_ALL=C.UTF-8 > _require_scratch_nocheck > _require_command "$F2FS_IO_PROG" f2fs_io > _require_command "$F2FS_INJECT_PROG" inject.f2fs > +_require_inject_f2fs_command dent d_hash > > #check whether f2fs supports "lookup_mode=x" mount option > mntopt="" > diff --git a/tests/f2fs/019 b/tests/f2fs/019 > index 2307bd96..f6bb0b52 100755 > --- a/tests/f2fs/019 > +++ b/tests/f2fs/019 > @@ -12,6 +12,7 @@ > # corruption in the file > # > . ./common/preamble > +. ./common/f2fs > _begin_fstest auto quick rw > > _fixed_by_kernel_commit 77de19b6867f \ > @@ -19,6 +20,7 @@ _fixed_by_kernel_commit 77de19b6867f \ > > _require_scratch_nocheck > _require_command "$F2FS_INJECT_PROG" inject.f2fs > +_require_inject_f2fs_command node addr > > # remove all mkfs options to avoid layout change of on-disk inode > export MKFS_OPTIONS="" > diff --git a/tests/f2fs/020 b/tests/f2fs/020 > index 38bc6582..332848d0 100755 > --- a/tests/f2fs/020 > +++ b/tests/f2fs/020 > @@ -12,6 +12,7 @@ > # corruption in the file > # > . ./common/preamble > +. ./common/f2fs > _begin_fstest auto quick rw > > . ./common/attr > @@ -21,6 +22,7 @@ _fixed_by_kernel_commit 061cf3a84bde \ > > _require_scratch_nocheck > _require_command "$F2FS_INJECT_PROG" inject.f2fs > +_require_inject_f2fs_command node i_xattr_nid > _require_attrs user > > # remove all mkfs options to avoid layout change of on-disk inode > diff --git a/tests/f2fs/022 b/tests/f2fs/022 > index ed3b4f2b..f81180e8 100755 > --- a/tests/f2fs/022 > +++ b/tests/f2fs/022 > @@ -11,6 +11,7 @@ > # 4. fpunch in foo w/ specified range > # > . ./common/preamble > +. ./common/f2fs > _begin_fstest auto quick rw > > . ./common/attr > @@ -20,6 +21,7 @@ _fixed_by_kernel_commit xxxxxxxxxxxx \ > > _require_scratch_nocheck > _require_command "$F2FS_INJECT_PROG" inject.f2fs > +_require_inject_f2fs_command node i_nid > > # remove all mkfs options to avoid layout change of on-disk inode > export MKFS_OPTIONS="" > -- > 2.40.1 > _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [f2fs-dev] [PATCH] common/f2fs: introduce _require_inject_f2fs_command() 2025-10-01 6:24 ` Zorro Lang via Linux-f2fs-devel @ 2025-10-09 8:35 ` Chao Yu via Linux-f2fs-devel 0 siblings, 0 replies; 3+ messages in thread From: Chao Yu via Linux-f2fs-devel @ 2025-10-09 8:35 UTC (permalink / raw) To: Zorro Lang; +Cc: jaegeuk, Zorro Lang, fstests, linux-f2fs-devel On 10/1/2025 2:24 PM, Zorro Lang wrote: > On Mon, Sep 29, 2025 at 02:52:40AM +0800, Chao Yu wrote: >> Introduce _require_inject_f2fs_command() to check whether inject.f2fs >> supports specific metaarea and member parameters. >> >> Cc: Jaegeuk Kim <jaegeuk@kernel.org> >> Signed-off-by: Chao Yu <chao@kernel.org> >> --- >> common/f2fs | 25 +++++++++++++++++++++++++ >> tests/f2fs/009 | 2 ++ >> tests/f2fs/012 | 2 ++ >> tests/f2fs/019 | 2 ++ >> tests/f2fs/020 | 2 ++ >> tests/f2fs/022 | 2 ++ >> 6 files changed, 35 insertions(+) >> >> diff --git a/common/f2fs b/common/f2fs > > You remind me that there's a common/f2fs file, you can move f2fs specific > functions to common/f2fs (e.g. _check_f2fs_filesystem) later :) Okay. > >> index 1b39d8ce..4b01e032 100644 >> --- a/common/f2fs >> +++ b/common/f2fs >> @@ -25,3 +25,28 @@ _require_scratch_f2fs_compression() >> _scratch_unmount >> fi >> } >> + >> +# check that inject.f2fs supports to inject specific field in specific meta area >> +_require_inject_f2fs_command() >> +{ >> + if [ $# -ne 2 ]; then >> + echo "Usage: _require_inject_f2fs_command metaarea member" 1>&2 >> + _exit 1 >> + fi >> + metaarea=$1 >> + member=$2 >> + >> + case $metaarea in >> + sb|cp|nat|sit) >> + val=0 >> + ;; >> + ssa|node|dent) >> + ;; >> + *) >> + _notrun "unsupport metaarea: $metaarea" >> + ;; >> + esac >> + >> + $F2FS_INJECT_PROG "--$metaarea" "$val" "-h" | grep "$member:" > /dev/null || \ >> + _notrun "--$metaarea --mb $member support is missing" >> +} >> diff --git a/tests/f2fs/009 b/tests/f2fs/009 >> index 7333d484..465be874 100755 >> --- a/tests/f2fs/009 >> +++ b/tests/f2fs/009 >> @@ -9,10 +9,12 @@ >> # and expects fsck.f2fs can detect such corruption and do the repair. >> # >> . ./common/preamble >> +. ./common/f2fs > > The common/f2fs can be imported by common/config:_source_specific_fs() > automatically, so we don't need this line at here. Oh, so we may missed to add such line for f2fs in common/config:_source_specific_fs(), let me add a separated patch for this, and then we can remove ". ./common/f2fs" for f2fs/002. > > (Same below) > >> _begin_fstest auto quick >> >> _require_scratch >> _require_command "$F2FS_INJECT_PROG" inject.f2fs >> +_require_inject_f2fs_command node i_links > > If the "_require_command $F2FS_INJECT_PROG inject.f2fs" is always required > before _require_inject_f2fs_command, how about call it at the beginning > of _require_inject_f2fs_command ? Yeah, that's better. :) Thanks, > > (same below) > > Thanks, > Zorro > >> _require_command "$(type -P socket)" socket >> >> _fixed_by_git_commit f2fs-tools 958cd6e \ >> diff --git a/tests/f2fs/012 b/tests/f2fs/012 >> index 7438d9ce..8e156772 100755 >> --- a/tests/f2fs/012 >> +++ b/tests/f2fs/012 >> @@ -12,6 +12,7 @@ >> # 4.enable linear lookup, expect lookup succeed >> # >> . ./common/preamble >> +. ./common/f2fs >> _begin_fstest auto quick casefold >> >> _fixed_by_kernel_commit 91b587ba79e1 \ >> @@ -21,6 +22,7 @@ export LC_ALL=C.UTF-8 >> _require_scratch_nocheck >> _require_command "$F2FS_IO_PROG" f2fs_io >> _require_command "$F2FS_INJECT_PROG" inject.f2fs >> +_require_inject_f2fs_command dent d_hash >> >> #check whether f2fs supports "lookup_mode=x" mount option >> mntopt="" >> diff --git a/tests/f2fs/019 b/tests/f2fs/019 >> index 2307bd96..f6bb0b52 100755 >> --- a/tests/f2fs/019 >> +++ b/tests/f2fs/019 >> @@ -12,6 +12,7 @@ >> # corruption in the file >> # >> . ./common/preamble >> +. ./common/f2fs >> _begin_fstest auto quick rw >> >> _fixed_by_kernel_commit 77de19b6867f \ >> @@ -19,6 +20,7 @@ _fixed_by_kernel_commit 77de19b6867f \ >> >> _require_scratch_nocheck >> _require_command "$F2FS_INJECT_PROG" inject.f2fs >> +_require_inject_f2fs_command node addr >> >> # remove all mkfs options to avoid layout change of on-disk inode >> export MKFS_OPTIONS="" >> diff --git a/tests/f2fs/020 b/tests/f2fs/020 >> index 38bc6582..332848d0 100755 >> --- a/tests/f2fs/020 >> +++ b/tests/f2fs/020 >> @@ -12,6 +12,7 @@ >> # corruption in the file >> # >> . ./common/preamble >> +. ./common/f2fs >> _begin_fstest auto quick rw >> >> . ./common/attr >> @@ -21,6 +22,7 @@ _fixed_by_kernel_commit 061cf3a84bde \ >> >> _require_scratch_nocheck >> _require_command "$F2FS_INJECT_PROG" inject.f2fs >> +_require_inject_f2fs_command node i_xattr_nid >> _require_attrs user >> >> # remove all mkfs options to avoid layout change of on-disk inode >> diff --git a/tests/f2fs/022 b/tests/f2fs/022 >> index ed3b4f2b..f81180e8 100755 >> --- a/tests/f2fs/022 >> +++ b/tests/f2fs/022 >> @@ -11,6 +11,7 @@ >> # 4. fpunch in foo w/ specified range >> # >> . ./common/preamble >> +. ./common/f2fs >> _begin_fstest auto quick rw >> >> . ./common/attr >> @@ -20,6 +21,7 @@ _fixed_by_kernel_commit xxxxxxxxxxxx \ >> >> _require_scratch_nocheck >> _require_command "$F2FS_INJECT_PROG" inject.f2fs >> +_require_inject_f2fs_command node i_nid >> >> # remove all mkfs options to avoid layout change of on-disk inode >> export MKFS_OPTIONS="" >> -- >> 2.40.1 >> > _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-10-09 8:35 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-09-28 18:52 [f2fs-dev] [PATCH] common/f2fs: introduce _require_inject_f2fs_command() Chao Yu via Linux-f2fs-devel 2025-10-01 6:24 ` Zorro Lang via Linux-f2fs-devel 2025-10-09 8:35 ` Chao Yu via Linux-f2fs-devel
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).