bcachefs: Avoid using btree_node_lock_nopath()
authorKent Overstreet <kent.overstreet@linux.dev>
Sat, 3 Sep 2022 02:59:39 +0000 (22:59 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:09:40 +0000 (17:09 -0400)
commit38474c264252475196a5e3c555b2625a5bc36a00
tree68d8bbf34a8bf3a3548b0e2c09bbd6d38bbeedee
parent3d21d48e898a2eadc9055c44e0fd51e6087c9e9f
bcachefs: Avoid using btree_node_lock_nopath()

With the upcoming cycle detector, we have to be careful about using
btree_node_lock_nopath - in particular, using it to take write locks can
cause deadlocks.

All held locks need to be tracked in a btree_path, so that the cycle
detector knows about them - unless we know that we cannot cause
deadlocks for other reasons: e.g. we are only taking read locks, or
we're in very early fsck (topology repair).

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