bcachefs: Improve bch2_btree_iter_traverse_all()
authorKent Overstreet <kent.overstreet@gmail.com>
Wed, 14 Apr 2021 17:26:15 +0000 (13:26 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:09:00 +0000 (17:09 -0400)
commit2527dd91580b1eb5ff1f8df1b47817ac60395830
tree010df60c971735284954e484109dbac249db7a3a
parent0ef107859bc868f783cbbbf055a907c702896661
bcachefs: Improve bch2_btree_iter_traverse_all()

By changing it to upgrade iterators to intent locks to avoid lock
restarts we can simplify __bch2_btree_node_lock() quite a bit - this
fixes a probable bug where it could potentially drop a lock on an
unrelated error but still succeed instead of causing a transaction
restart.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/btree_iter.c
fs/bcachefs/btree_iter.h
fs/bcachefs/trace.h