Re: [f2fs-dev] [PATCH] f2fs: only redirty pinned folios in redirty_blocks
Chao Yu via Linux-f2fs-devel <[email protected]> Mon, 3 Aug 2026 16:38:06 +0800
| Newsgroups | net.sourceforge.lists.linux-f2fs-devel,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
On 7/27/26 21:04, Wenjie Qi wrote:
> redirty_blocks() pins folios with read_cache_folio() and then walks the
> same range again with filemap_lock_folio() to redirty them and drop the
> references it took.
>
> Commit 5951fee46bef ("f2fs: Use a folio in redirty_blocks()") changed
> the second pass to a do/while loop. If read_cache_folio() fails before
> anything is pinned, page_idx does not advance but the cleanup loop still
> runs once.
>
> If readahead has already populated the failed folio in page cache, that
> extra iteration finds it and folio_put_refs(folio, 2) drops one
> reference too many. Later drop_caches or reclaim can then report
> "BUG: Bad page state".
>
> Only redirty the range that was pinned successfully.
>
> Fixes: 5951fee46bef ("f2fs: Use a folio in redirty_blocks()")
> Cc: [email protected]
> Assisted-by: Codex:gpt-5.5
> Signed-off-by: Wenjie Qi <[email protected]>
Reviewed-by: Chao Yu <[email protected]>
Thanks,
_______________________________________________
Linux-f2fs-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel