From: Qu Wenruo <wqu@suse.com>
To: ZhengYuan Huang <gality369@gmail.com>, dsterba@suse.com, clm@fb.com
Cc: linux-btrfs@vger.kernel.org, linux-kernel@vger.kernel.org,
baijiaju1990@gmail.com, r33s3n6@gmail.com, zzzccc427@gmail.com,
stable@vger.kernel.org
Subject: Re: [PATCH v2] btrfs: reject root items with drop_progress and zero drop_level
Date: Thu, 12 Mar 2026 11:37:24 +1030 [thread overview]
Message-ID: <8533b404-3377-416e-81d9-2bdb00baaae2@suse.com> (raw)
In-Reply-To: <17c102a6-bbd1-4937-b5cc-5f6912551180@suse.com>
在 2026/3/12 10:53, Qu Wenruo 写道:
[...]
>>
>> Fixes: 259ee7754b67 ("btrfs: tree-checker: Add ROOT_ITEM check")
>
> Again, it's not a bug fix. You're just adding a new check.
More info about when to use fixes tag:
https://www.kernel.org/doc/html/v6.19/process/submitting-patches.html#using-reported-by-tested-by-reviewed-by-suggested-by-and-fixes
It's more common to use it for a regression, aka, before that commit
everything works, but at that commit something is broken.
And in your case, the commit is not causing the BUG_ON() thus it's
incorrect.
Furthermore you'd better not put the commit introducing the BUG_ON() as
the fixes target.
In your case, you're just enhancing the tree-checker to address a fuzzed
image (which I guess you'll continue submitting such patches), thus
getting the fixes tag done correctly will save everyone time.
Thanks,
Qu
>
> This fixes tag should only go with the error message fix.
>
> You don't need to send a new update, I'll do all the update at merge time.
>
> Otherwise looks good to me.
>
> Reviewed-by: Qu Wenruo <wqu@suse.com>
>
> Thanks,
> Qu
>
>> Cc: stable@vger.kernel.org # 5.3+
>> Signed-off-by: ZhengYuan Huang <gality369@gmail.com>
>> ---
>> [CHANGELOG]
>> v2:
>> - Split out the error message fix from the previous patch, as requested
>> during review.
>> ---
>> fs/btrfs/tree-checker.c | 17 +++++++++++++++++
>> 1 file changed, 17 insertions(+)
>>
>> diff --git a/fs/btrfs/tree-checker.c b/fs/btrfs/tree-checker.c
>> index dd274f67ad7f..1e052c3303b3 100644
>> --- a/fs/btrfs/tree-checker.c
>> +++ b/fs/btrfs/tree-checker.c
>> @@ -1260,6 +1260,23 @@ static int check_root_item(struct extent_buffer
>> *leaf, struct btrfs_key *key,
>> btrfs_root_drop_level(&ri), BTRFS_MAX_LEVEL - 1);
>> return -EUCLEAN;
>> }
>> + /*
>> + * If drop_progress.objectid is non-zero, a btrfs_drop_snapshot()
>> was
>> + * interrupted and the resume point was recorded in drop_progress
>> and
>> + * drop_level. In that case drop_level must be >= 1: level 0 is the
>> + * leaf level and drop_snapshot never saves a checkpoint there (it
>> + * only records checkpoints at internal node levels in
>> DROP_REFERENCE
>> + * stage). A zero drop_level combined with a non-zero drop_progress
>> + * objectid indicates on-disk corruption and would cause a BUG_ON in
>> + * merge_reloc_root() and btrfs_drop_snapshot() at mount time.
>> + */
>> + if (unlikely(btrfs_disk_key_objectid(&ri.drop_progress) != 0 &&
>> + btrfs_root_drop_level(&ri) == 0)) {
>> + generic_err(leaf, slot,
>> + "invalid root drop_level 0 with non-zero
>> drop_progress objectid %llu",
>> + btrfs_disk_key_objectid(&ri.drop_progress));
>> + return -EUCLEAN;
>> + }
>> /* Flags check */
>> if (unlikely(btrfs_root_flags(&ri) & ~valid_root_flags)) {
>
>
next prev parent reply other threads:[~2026-03-12 1:07 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-12 0:14 ZhengYuan Huang
2026-03-12 0:23 ` Qu Wenruo
2026-03-12 1:07 ` Qu Wenruo [this message]
2026-03-12 2:10 ` ZhengYuan Huang
2026-03-12 4:16 ` Qu Wenruo
2026-03-12 4:27 ` ZhengYuan Huang
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=8533b404-3377-416e-81d9-2bdb00baaae2@suse.com \
--to=wqu@suse.com \
--cc=baijiaju1990@gmail.com \
--cc=clm@fb.com \
--cc=dsterba@suse.com \
--cc=gality369@gmail.com \
--cc=linux-btrfs@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=r33s3n6@gmail.com \
--cc=stable@vger.kernel.org \
--cc=zzzccc427@gmail.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
all inboxes | Powered by JetHome®