From: Hongling Zeng <zhongling0719@126.com>
To: Qu Wenruo <wqu@suse.com>, Hongling Zeng <zenghongling@kylinos.cn>,
clm@fb.com, dsterba@suse.com, boris@bur.io, willy@infradead.org
Cc: linux-btrfs@vger.kernel.org, linux-kernel@vger.kernel.org,
stable@vger.kernel.org
Subject: Re: [PATCH] btrfs: fix missing folio_unlock in read_merkle_tree_page error path
Date: Mon, 17 Aug 2026 14:51:52 +0800 [thread overview]
Message-ID: <6A82AF88.4090101@126.com> (raw)
In-Reply-To: <72e6138f-3c9e-4094-a746-bd1e4c6f1558@suse.com>
在 2026年08月17日 14:43, Qu Wenruo 写道:
>
>
> 在 2026/8/17 15:06, Hongling Zeng 写道:
>> filemap_add_folio() adds the folio to the page cache and leaves it
>> locked.
>> If read_key_bytes() fails, the error path only calls folio_put() without
>> first unlocking the folio, leaving it permanently locked in the page
>> cache.
>> This causes subsequent attempts to lock this folio to hang.
>>
>> Fix by adding folio_unlock() before folio_put() in the error handling
>> path.
>>
>> Fixes: 06ed09351b67 ("btrfs: convert btrfs_read_merkle_tree_page() to
>> use a folio")
>> Cc: stable@vger.kernel.org
>> Assisted-by: Codex:gpt-5.5
>> Signed-off-by: Hongling Zeng <zenghongling@kylinos.cn>
>
> A fix is already submitted and merged:
>
> https://lore.kernel.org/linux-btrfs/20260722025435.1493093-1-chenyichong@uniontech.com/
>
>
> Next time let your agent to read the btrfs developer's note and check
> if there is already a fix:
>
> https://btrfs.readthedocs.io/en/latest/dev/Developer-s-FAQ.html#development-phase-linux-next-for-next
>
>
Thanks for the feedback.
I should have checked for existing fixes first.
I will ensure to check git history and mailing lists before submitting
future patches.
Apologies for the duplicate submission.
>> ---
>> fs/btrfs/verity.c | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/fs/btrfs/verity.c b/fs/btrfs/verity.c
>> index 983365a73541..4431656140f8 100644
>> --- a/fs/btrfs/verity.c
>> +++ b/fs/btrfs/verity.c
>> @@ -753,6 +753,7 @@ static struct page
>> *btrfs_read_merkle_tree_page(struct inode *inode,
>> ret = read_key_bytes(BTRFS_I(inode),
>> BTRFS_VERITY_MERKLE_ITEM_KEY, off,
>> folio_address(folio), PAGE_SIZE, folio);
>> if (ret < 0) {
>> + folio_unlock(folio);
>> folio_put(folio);
>> return ERR_PTR(ret);
>> }
prev parent reply other threads:[~2026-08-17 6:53 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-17 5:36 [PATCH] btrfs: fix missing folio_unlock in read_merkle_tree_page error path Hongling Zeng
2026-08-17 6:43 ` Qu Wenruo
2026-08-17 6:51 ` Hongling Zeng [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=6A82AF88.4090101@126.com \
--to=zhongling0719@126.com \
--cc=boris@bur.io \
--cc=clm@fb.com \
--cc=dsterba@suse.com \
--cc=linux-btrfs@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=stable@vger.kernel.org \
--cc=willy@infradead.org \
--cc=wqu@suse.com \
--cc=zenghongling@kylinos.cn \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.