bcachefs: Introduce bch2_journal_keys_peek_(upto|slot)()
authorKent Overstreet <kent.overstreet@gmail.com>
Tue, 12 Apr 2022 00:28:13 +0000 (20:28 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:09:31 +0000 (17:09 -0400)
commit5650bb46be89a1254609d47e4c87d1e9cf9121fb
tree73506214235f46eed04b2e4675463db1b38b2ea4
parent9b93596c33f6c23de96c05dce82b9aead271a286
bcachefs: Introduce bch2_journal_keys_peek_(upto|slot)()

When many journal replay keys have been overwritten,
bch2_journal_keys_peek() was taking excessively long to scan before it
found a key to return.

Fix this by introducing bch2_journal_keys_peek_upto() which takes a
parameter for the end of the range we want, so that we can terminate the
search much sooner, and replace all uses of bch2_journal_keys_peek()
with peek_upto() or peek_slot().

Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
fs/bcachefs/btree_iter.c
fs/bcachefs/btree_update_leaf.c
fs/bcachefs/recovery.c
fs/bcachefs/recovery.h