* [f2fs-dev] [PATCH v3 1/2] f2fs/021: test quota mount option
@ 2025-10-11 8:47 Chao Yu via Linux-f2fs-devel
2025-10-11 8:47 ` [f2fs-dev] [PATCH v3 2/2] f2fs/022: do sanity check on footer of non inode dnode Chao Yu via Linux-f2fs-devel
2025-10-17 19:30 ` [f2fs-dev] [PATCH v3 1/2] f2fs/021: test quota mount option Zorro Lang via Linux-f2fs-devel
0 siblings, 2 replies; 4+ messages in thread
From: Chao Yu via Linux-f2fs-devel @ 2025-10-11 8:47 UTC (permalink / raw)
To: Zorro Lang, fstests; +Cc: jaegeuk, Zorro Lang, linux-f2fs-devel
This testcase tries to check whether f2fs can handle "usrjquota="
during remount correctly, it expects kernel will encounter NULL
pointer dereference bug w/o the fix ("f2fs: fix to avoid NULL pointer
dereference in f2fs_check_quota_consistency()").
Cc: Jaegeuk Kim <jaegeuk@kernel.org>
Reviewed-by: Zorro Lang <zlang@redhat.com>
Signed-off-by: Chao Yu <chao@kernel.org>
---
v3:
- update commit id in _fixed_by_kernel_commit line
tests/f2fs/021 | 30 ++++++++++++++++++++++++++++++
tests/f2fs/021.out | 2 ++
2 files changed, 32 insertions(+)
create mode 100755 tests/f2fs/021
create mode 100644 tests/f2fs/021.out
diff --git a/tests/f2fs/021 b/tests/f2fs/021
new file mode 100755
index 00000000..0cacb138
--- /dev/null
+++ b/tests/f2fs/021
@@ -0,0 +1,30 @@
+#! /bin/bash
+# SPDX-License-Identifier: GPL-2.0
+# Copyright (c) 2025 Chao Yu. All Rights Reserved.
+#
+# FS QA Test No. f2fs/021
+#
+# This testcase tries to check whether f2fs can handle "usrjquota="
+# during remount correctly
+#
+. ./common/preamble
+_begin_fstest auto quick mount quota remount
+
+_fixed_by_kernel_commit 930a9a6ee8e7 \
+ "f2fs: fix to avoid NULL pointer dereference in f2fs_check_quota_consistency()"
+
+_require_scratch
+
+_scratch_mkfs >> $seqres.full
+_scratch_mount "-o usrquota"
+quotacheck -uc $SCRATCH_MNT
+_scratch_unmount
+
+_scratch_mount "-o usrjquota=aquota.user,jqfmt=vfsold"
+_scratch_mount "-o remount,usrjquota=,jqfmt=vfsold"
+_scratch_unmount
+
+echo "Silence is golden"
+
+status=0
+exit
diff --git a/tests/f2fs/021.out b/tests/f2fs/021.out
new file mode 100644
index 00000000..09f4062d
--- /dev/null
+++ b/tests/f2fs/021.out
@@ -0,0 +1,2 @@
+QA output created by 021
+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
^ permalink raw reply related [flat|nested] 4+ messages in thread* [f2fs-dev] [PATCH v3 2/2] f2fs/022: do sanity check on footer of non inode dnode
2025-10-11 8:47 [f2fs-dev] [PATCH v3 1/2] f2fs/021: test quota mount option Chao Yu via Linux-f2fs-devel
@ 2025-10-11 8:47 ` Chao Yu via Linux-f2fs-devel
2025-10-17 19:30 ` [f2fs-dev] [PATCH v3 1/2] f2fs/021: test quota mount option Zorro Lang via Linux-f2fs-devel
1 sibling, 0 replies; 4+ messages in thread
From: Chao Yu via Linux-f2fs-devel @ 2025-10-11 8:47 UTC (permalink / raw)
To: Zorro Lang, fstests; +Cc: jaegeuk, Zorro Lang, linux-f2fs-devel
This is a regression test:
1. create foo & bar
2. write 8M data to foo
3. use inject.f2fs to inject i_nid[0] of foo w/ ino of bar
4. fpunch in foo w/ specified range
If we haven't applied kernel patch ("f2fs: fix to do sanity check on
node footer for non inode dnode"), f2fs may missed to do sanity check
on corrupted dnode, result in panic or deadloop in step 4).
Cc: Jaegeuk Kim <jaegeuk@kernel.org>
Signed-off-by: Chao Yu <chao@kernel.org>
Reviewed-by: Zorro Lang <zlang@redhat.com>
---
v3:
- update commit id in _fixed_by_kernel_commit line
- fix to update output to "fallocate: Structure needs cleaning"
- fix typo for foo_path & bar_path
tests/f2fs/022 | 52 ++++++++++++++++++++++++++++++++++++++++++++++
tests/f2fs/022.out | 2 ++
2 files changed, 54 insertions(+)
create mode 100755 tests/f2fs/022
create mode 100644 tests/f2fs/022.out
diff --git a/tests/f2fs/022 b/tests/f2fs/022
new file mode 100755
index 00000000..e5dd3077
--- /dev/null
+++ b/tests/f2fs/022
@@ -0,0 +1,52 @@
+#! /bin/bash
+# SPDX-License-Identifier: GPL-2.0
+# Copyright (c) 2025 Chao Yu. All Rights Reserved.
+#
+# FS QA Test No. f2fs/022
+#
+# This is a regression test:
+# 1. create foo & bar
+# 2. write 8M data to foo
+# 3. use inject.f2fs to inject i_nid[0] of foo w/ ino of bar
+# 4. fpunch in foo w/ specified range
+#
+. ./common/preamble
+_begin_fstest auto quick rw
+
+. ./common/attr
+
+_fixed_by_kernel_commit c18ecd99e0c7 \
+ "f2fs: fix to do sanity check on node footer for non inode dnode"
+
+_require_scratch_nocheck
+_require_command "$F2FS_INJECT_PROG" inject.f2fs
+
+# remove all mkfs options to avoid layout change of on-disk inode
+export MKFS_OPTIONS=""
+
+foo_path=$SCRATCH_MNT/foo
+bar_path=$SCRATCH_MNT/bar
+
+_scratch_mkfs >> $seqres.full
+_scratch_mount
+
+touch $foo_path
+touch $bar_path
+$XFS_IO_PROG $foo_path -c "pwrite 0 8M" >> $seqres.full
+sync
+foo_ino=`stat -c '%i' $foo_path`
+bar_ino=`stat -c '%i' $bar_path`
+_scratch_unmount
+
+# inject foo inode to replace i_nid[0] w/ to bar ino
+$F2FS_INJECT_PROG --node --mb i_nid --nid $foo_ino --idx 0 --val $bar_ino $SCRATCH_DEV >> $seqres.full || _fail "failed to inject"
+
+_scratch_mount
+
+# if CONFIG_F2FS_CHECK_FS is enabled, it will trigger a kernel panic,
+# otherwise, it will enter a deadloop.
+$XFS_IO_PROG $foo_path -c "fpunch 6984k 4k"
+_scratch_unmount
+
+status=0
+exit
diff --git a/tests/f2fs/022.out b/tests/f2fs/022.out
new file mode 100644
index 00000000..5307e3d7
--- /dev/null
+++ b/tests/f2fs/022.out
@@ -0,0 +1,2 @@
+QA output created by 022
+fallocate: Structure needs cleaning
--
2.49.0
_______________________________________________
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] 4+ messages in thread* Re: [f2fs-dev] [PATCH v3 1/2] f2fs/021: test quota mount option
2025-10-11 8:47 [f2fs-dev] [PATCH v3 1/2] f2fs/021: test quota mount option Chao Yu via Linux-f2fs-devel
2025-10-11 8:47 ` [f2fs-dev] [PATCH v3 2/2] f2fs/022: do sanity check on footer of non inode dnode Chao Yu via Linux-f2fs-devel
@ 2025-10-17 19:30 ` Zorro Lang via Linux-f2fs-devel
2025-10-20 2:57 ` Chao Yu via Linux-f2fs-devel
1 sibling, 1 reply; 4+ messages in thread
From: Zorro Lang via Linux-f2fs-devel @ 2025-10-17 19:30 UTC (permalink / raw)
To: Chao Yu; +Cc: jaegeuk, Zorro Lang, fstests, linux-f2fs-devel
On Sat, Oct 11, 2025 at 04:47:14PM +0800, Chao Yu wrote:
> This testcase tries to check whether f2fs can handle "usrjquota="
> during remount correctly, it expects kernel will encounter NULL
> pointer dereference bug w/o the fix ("f2fs: fix to avoid NULL pointer
> dereference in f2fs_check_quota_consistency()").
>
> Cc: Jaegeuk Kim <jaegeuk@kernel.org>
> Reviewed-by: Zorro Lang <zlang@redhat.com>
> Signed-off-by: Chao Yu <chao@kernel.org>
> ---
Hi Chao,
This patchset has been merged, you can send a seperated patch to update the
commit id of _fixed_by_kernel_commit :)
Thanks,
Zorro
> v3:
> - update commit id in _fixed_by_kernel_commit line
> tests/f2fs/021 | 30 ++++++++++++++++++++++++++++++
> tests/f2fs/021.out | 2 ++
> 2 files changed, 32 insertions(+)
> create mode 100755 tests/f2fs/021
> create mode 100644 tests/f2fs/021.out
>
> diff --git a/tests/f2fs/021 b/tests/f2fs/021
> new file mode 100755
> index 00000000..0cacb138
> --- /dev/null
> +++ b/tests/f2fs/021
> @@ -0,0 +1,30 @@
> +#! /bin/bash
> +# SPDX-License-Identifier: GPL-2.0
> +# Copyright (c) 2025 Chao Yu. All Rights Reserved.
> +#
> +# FS QA Test No. f2fs/021
> +#
> +# This testcase tries to check whether f2fs can handle "usrjquota="
> +# during remount correctly
> +#
> +. ./common/preamble
> +_begin_fstest auto quick mount quota remount
> +
> +_fixed_by_kernel_commit 930a9a6ee8e7 \
> + "f2fs: fix to avoid NULL pointer dereference in f2fs_check_quota_consistency()"
> +
> +_require_scratch
> +
> +_scratch_mkfs >> $seqres.full
> +_scratch_mount "-o usrquota"
> +quotacheck -uc $SCRATCH_MNT
> +_scratch_unmount
> +
> +_scratch_mount "-o usrjquota=aquota.user,jqfmt=vfsold"
> +_scratch_mount "-o remount,usrjquota=,jqfmt=vfsold"
> +_scratch_unmount
> +
> +echo "Silence is golden"
> +
> +status=0
> +exit
> diff --git a/tests/f2fs/021.out b/tests/f2fs/021.out
> new file mode 100644
> index 00000000..09f4062d
> --- /dev/null
> +++ b/tests/f2fs/021.out
> @@ -0,0 +1,2 @@
> +QA output created by 021
> +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
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [f2fs-dev] [PATCH v3 1/2] f2fs/021: test quota mount option
2025-10-17 19:30 ` [f2fs-dev] [PATCH v3 1/2] f2fs/021: test quota mount option Zorro Lang via Linux-f2fs-devel
@ 2025-10-20 2:57 ` Chao Yu via Linux-f2fs-devel
0 siblings, 0 replies; 4+ messages in thread
From: Chao Yu via Linux-f2fs-devel @ 2025-10-20 2:57 UTC (permalink / raw)
To: Zorro Lang; +Cc: jaegeuk, Zorro Lang, fstests, linux-f2fs-devel
On 10/17/25 19:30, Zorro Lang wrote:
> On Sat, Oct 11, 2025 at 04:47:14PM +0800, Chao Yu wrote:
>> This testcase tries to check whether f2fs can handle "usrjquota="
>> during remount correctly, it expects kernel will encounter NULL
>> pointer dereference bug w/o the fix ("f2fs: fix to avoid NULL pointer
>> dereference in f2fs_check_quota_consistency()").
>>
>> Cc: Jaegeuk Kim <jaegeuk@kernel.org>
>> Reviewed-by: Zorro Lang <zlang@redhat.com>
>> Signed-off-by: Chao Yu <chao@kernel.org>
>> ---
>
> Hi Chao,
>
> This patchset has been merged, you can send a seperated patch to update the
> commit id of _fixed_by_kernel_commit :)
Hi Zorro,
I have sent a seperated patch to update commit id, please take a look, thanks. :)
Thanks,
>
> Thanks,
> Zorro
>
>> v3:
>> - update commit id in _fixed_by_kernel_commit line
>> tests/f2fs/021 | 30 ++++++++++++++++++++++++++++++
>> tests/f2fs/021.out | 2 ++
>> 2 files changed, 32 insertions(+)
>> create mode 100755 tests/f2fs/021
>> create mode 100644 tests/f2fs/021.out
>>
>> diff --git a/tests/f2fs/021 b/tests/f2fs/021
>> new file mode 100755
>> index 00000000..0cacb138
>> --- /dev/null
>> +++ b/tests/f2fs/021
>> @@ -0,0 +1,30 @@
>> +#! /bin/bash
>> +# SPDX-License-Identifier: GPL-2.0
>> +# Copyright (c) 2025 Chao Yu. All Rights Reserved.
>> +#
>> +# FS QA Test No. f2fs/021
>> +#
>> +# This testcase tries to check whether f2fs can handle "usrjquota="
>> +# during remount correctly
>> +#
>> +. ./common/preamble
>> +_begin_fstest auto quick mount quota remount
>> +
>> +_fixed_by_kernel_commit 930a9a6ee8e7 \
>> + "f2fs: fix to avoid NULL pointer dereference in f2fs_check_quota_consistency()"
>> +
>> +_require_scratch
>> +
>> +_scratch_mkfs >> $seqres.full
>> +_scratch_mount "-o usrquota"
>> +quotacheck -uc $SCRATCH_MNT
>> +_scratch_unmount
>> +
>> +_scratch_mount "-o usrjquota=aquota.user,jqfmt=vfsold"
>> +_scratch_mount "-o remount,usrjquota=,jqfmt=vfsold"
>> +_scratch_unmount
>> +
>> +echo "Silence is golden"
>> +
>> +status=0
>> +exit
>> diff --git a/tests/f2fs/021.out b/tests/f2fs/021.out
>> new file mode 100644
>> index 00000000..09f4062d
>> --- /dev/null
>> +++ b/tests/f2fs/021.out
>> @@ -0,0 +1,2 @@
>> +QA output created by 021
>> +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
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-10-20 2:58 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-11 8:47 [f2fs-dev] [PATCH v3 1/2] f2fs/021: test quota mount option Chao Yu via Linux-f2fs-devel
2025-10-11 8:47 ` [f2fs-dev] [PATCH v3 2/2] f2fs/022: do sanity check on footer of non inode dnode Chao Yu via Linux-f2fs-devel
2025-10-17 19:30 ` [f2fs-dev] [PATCH v3 1/2] f2fs/021: test quota mount option Zorro Lang via Linux-f2fs-devel
2025-10-20 2:57 ` 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).