public inbox for fstests@vger.kernel.org
 help / color / mirror / Atom feed
From: Chao Yu <chao@kernel.org>
To: Zorro Lang <zlang@redhat.com>
Cc: chao@kernel.org, Zorro Lang <zlang@kernel.org>,
	fstests@vger.kernel.org, jaegeuk@kernel.org,
	linux-f2fs-devel@lists.sourceforge.net
Subject: Re: [PATCH] f2fs/023: test sanity check condition w/ error injection
Date: Mon, 3 Nov 2025 10:51:39 +0800	[thread overview]
Message-ID: <ac031bfd-efcc-4b75-b78e-74f80e7ee509@kernel.org> (raw)
In-Reply-To: <20251101152055.35zyuql6li2zzny7@dell-per750-06-vm-08.rhts.eng.pek2.redhat.com>

Zorro,

On 11/1/25 23:23, Zorro Lang wrote:
> On Wed, Oct 29, 2025 at 07:54:13PM +0800, Chao Yu wrote:
>> After commit 5c1768b67250 ("f2fs: fix to do sanity check correctly on
>> i_inline_xattr_size"), f2fs should handle corrupted i_inline_xattr_size
>> correctly, let's add this regression testcase to check that.
>>
>> Cc: Jaegeuk Kim <jaegeuk@kernel.org>
>> Signed-off-by: Chao Yu <chao@kernel.org>
>> ---
> 
> Hi Chao,
> 
> Thanks for new test case for f2fs. Some review points as below :)
> 
>>  tests/f2fs/023     | 44 ++++++++++++++++++++++++++++++++++++++++++++
>>  tests/f2fs/023.out |  2 ++
>>  2 files changed, 46 insertions(+)
>>  create mode 100755 tests/f2fs/023
>>  create mode 100644 tests/f2fs/023.out
>>
>> diff --git a/tests/f2fs/023 b/tests/f2fs/023
>> new file mode 100755
>> index 00000000..d1b7df32
>> --- /dev/null
>> +++ b/tests/f2fs/023
>> @@ -0,0 +1,44 @@
>> +#! /bin/bash
>> +# SPDX-License-Identifier: GPL-2.0
>> +# Copyright (c) 2025 Chao Yu <chao@kernel.org>
>> +#
>> +# FS QA Test No. f2fs/023
>> +#
>> +# This testcase tries to inject fault into inode.i_inline_xattr_size,
>> +# and check whether sanity check of f2fs can handle fault correctly.
>> +#
>> +
>> +. ./common/preamble
>> +_begin_fstest auto quick rw
>> +
>> +_fixed_by_kernel_commit 5c1768b67250 \
>> +        "f2fs: fix to do sanity check correctly on i_inline_xattr_size"
>> +
>> +_require_scratch_nocheck
>> +_require_inject_f2fs_command node i_inline
>> +_require_inject_f2fs_command node i_inline_xattr_size
>> +
>> +testfile=$SCRATCH_MNT/testfile
>> +
>> +# remove all mkfs options to avoid layout change of on-disk inode
>> +export MKFS_OPTIONS=""
>> +
>> +_scratch_mkfs "-O extra_attr,flexible_inline_xattr" >> $seqres.full
> 
> As you use specific mkfs options, so better to _fail "..." if mkfs fails.
> 
>> +_scratch_mount "-o inline_xattr_size=512" >>$seqres.full 2>&1
>> +touch $testfile
>> +_scratch_unmount
>> +
>> +# inject .i_inline field: clear F2FS_EXTRA_ATTR bit
>> +$F2FS_INJECT_PROG --node --mb i_inline --nid 4 --val 0x1 $SCRATCH_DEV \
>> +		>>$seqres.full || _fail "failed to inject i_inline"
>> +
>> +# inject .i_inline_xattr_size field from 512 to 2048
>> +$F2FS_INJECT_PROG --node --mb i_inline_xattr_size --nid 4 --val 2048 $SCRATCH_DEV \
>> +		>>$seqres.full || _fail "failed to inject i_inline_xattr_size"
> 
> I found my system doesn't support i_inline_xattr_size,
> 
>   # inject.f2fs -V
>  inject.f2fs 1.16.0 (2025-08-12)
> 
> I tried to removed above "_require_inject_f2fs_command node i_inline_xattr_size",
> but I found this test didn't exit from above _fail. The .full file got:
> 
>   [inject_inode:833] unknown or unsupported member "i_inline_xattr_size"
> 
> So are you sure the $F2FS_INJECT_PROG return error if "failed to inject i_inline_xattr_size" :)

Oops, I found that inject.f2fs missed to return correct value for error case,
let me fix this.

In order to keep compatibility for old inject.f2fs tool, let me check output
instead of return value from inject.f2fs.

Let me know if you have any other concern.

> 
>> +
>> +_scratch_mount
>> +
>> +getfattr -n user.test "$testfile" 2>&1 | awk -F ': ' '/Structure needs cleaning/ { print $NF }'
> 
> As you need "user" attribute, so you need "_require_attrs" (. ./common/attr), also
> the test group should have "attr".
> 
> If you don't need _getfattr, please use $GETFATTR_PROG at least.
> 
> And how about replace the "awk" with "_filter_scratch" (. ./common/filter)

Thanks for all your comments, will fix them all in v2. :)

Thankss,

> 
> Thanks,
> Zorro
> 
>> +
>> +status=0
>> +exit
>> diff --git a/tests/f2fs/023.out b/tests/f2fs/023.out
>> new file mode 100644
>> index 00000000..7f16f33f
>> --- /dev/null
>> +++ b/tests/f2fs/023.out
>> @@ -0,0 +1,2 @@
>> +QA output created by 023
>> +Structure needs cleaning
>> -- 
>> 2.49.0
>>
> 


      reply	other threads:[~2025-11-03  2:51 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-10-29 11:54 [PATCH] f2fs/023: test sanity check condition w/ error injection Chao Yu
2025-11-01 15:23 ` Zorro Lang
2025-11-03  2:51   ` Chao Yu [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ac031bfd-efcc-4b75-b78e-74f80e7ee509@kernel.org \
    --to=chao@kernel.org \
    --cc=fstests@vger.kernel.org \
    --cc=jaegeuk@kernel.org \
    --cc=linux-f2fs-devel@lists.sourceforge.net \
    --cc=zlang@kernel.org \
    --cc=zlang@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox