bcachefs: Disable merges from interior update path
authorKent Overstreet <kent.overstreet@linux.dev>
Sat, 13 Apr 2024 22:39:03 +0000 (18:39 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 14 Apr 2024 02:49:25 +0000 (22:49 -0400)
commit3f10048973c8366e27147d72bf3fd8d0e1d929f2
tree0d958fc944434c2fed78c233146e0dc917da37d6
parent9054ef2ea944528b7935d0ce3f540d4dc0bc37ba
bcachefs: Disable merges from interior update path

There's been a bug in the btree write buffer where it wasn't triggering
btree node merges - and leaving behind a bunch of nearly empty btree
nodes.

Then during journal replay, when updates to the backpointers btree
aren't using the btree write buffer (because we require synchronization
with journal replay), we end up doing those merges all at once.

Then if it's the interior update path running them, we deadlock because
those run with the highest watermark.

There's no real need for the interior update path to be doing btree node
merges; other code paths can handle that at lower watermarks.

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