bcachefs: Check for stale dirty pointer before reads
authorKent Overstreet <kent.overstreet@gmail.com>
Tue, 15 Feb 2022 05:06:59 +0000 (00:06 -0500)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:09:24 +0000 (17:09 -0400)
commiteb331fe5a4e801dc11d96ba7fbda0a91c8bd626c
treebb8144cd4214f0bf41f7e8f680c1a09d8d4adda7
parentfcf01959eaa828b1005f8f30732949e64edb8c4d
bcachefs: Check for stale dirty pointer before reads

Since we retry reads when we discover we read from a pointer that went
stale, if a dirty pointer is erroniously stale it would cause us to loop
retrying that read forever - unless we check before issuing the read,
while the btree is still locked, when we know that a dirty pointer
should never be stale.

This patch adds that check, along with printing some helpful debug info.

Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
fs/bcachefs/fs-io.c
fs/bcachefs/io.c
fs/bcachefs/move.c