Re: [PATCH] btrfs: fix missing folio_unlock in read_merkle_tree_page error path

Hongling Zeng <[email protected]>
Newsgroups org.kernel.vger.linux-btrfs,org.kernel.vger.linux-kernel,org.kernel.vger.stable
Message-ID <[email protected]>
在 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: [email protected]
>> Assisted-by: Codex:gpt-5.5
>> Signed-off-by: Hongling Zeng <[email protected]>
>
> A fix is already submitted and merged:
>
> https://lore.kernel.org/linux-btrfs/[email protected]/ 
>
>
> 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);
>>       }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.