bcachefs: Change where merging of interior btree nodes is trigger from
authorKent Overstreet <kent.overstreet@gmail.com>
Wed, 31 Mar 2021 19:39:16 +0000 (15:39 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:08:58 +0000 (17:08 -0400)
commit1259cc31b23221feae5e49cc02eaf7cfb7df9f54
treed8c83c5c087cfe8d485e0b45ff9147005ab32312
parente264b2f62a8fdf571e9ca9a741719a9b567573f5
bcachefs: Change where merging of interior btree nodes is trigger from

Previously, we were doing btree node merging from
bch2_btree_insert_node() - but this is called from the split path, when
we're in the middle of creating new nodes and deleting new nodes and the
iterators are in a weird state.

Also, this means we're starting a new btree_update while in the middle
of an existing one, and that's asking for deadlocks.

Much simpler and saner to trigger btree node merging _after_ the whole
btree node split path is finished.

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