* [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).