Re: [PATCH v5] btrfs: retry verity reads for not-uptodate Merkle folios
From: David Sterba
Date: Fri Aug 21 2026 - 12:03:47 EST
On Mon, Aug 17, 2026 at 01:48:37PM +0800, Yichong Chen wrote:
> btrfs_read_merkle_tree_page() can find a folio in the mapping that is not
> uptodate. After taking the folio lock, the current code treats that state
> as a read error and returns -EIO.
>
> That can make a previous transient read failure sticky. If the failed read
> left a not-uptodate folio in the mapping, later callers find that folio and
> fail instead of retrying the read.
>
> Keep the existing page-cache insertion and locking order, but retry the
> Merkle item read when a not-uptodate folio is found in the mapping. Also
> unlock the folio when read_key_bytes() fails so that a later caller can
> lock it and retry the read.
>
> Reviewed-by: Boris Burkov <boris@xxxxxx>
> Signed-off-by: Yichong Chen <chenyichong@xxxxxxxxxxxxx>
> ---
> v5:
> - Drop the Fixes tag, as Matthew pointed out that 06ed09351b67 did not
> introduce the original !uptodate-page handling.
This was merged as commit 8cc569696dac51 ("btrfs: retry verity reads for
not-uptodate Merkle folios")