bcachefs: Make sure to drop/retake btree locks before reclaim
authorKent Overstreet <kent.overstreet@linux.dev>
Sun, 5 Nov 2023 20:28:44 +0000 (15:28 -0500)
committerKent Overstreet <kent.overstreet@linux.dev>
Tue, 14 Nov 2023 02:45:03 +0000 (21:45 -0500)
commit09b0283ee23a02094a43a9b93146d1060c58fc3a
treef471e38290bd5815a486d41cea77ff1d7bdda321
parent3b8c4507779691984e31e64e0b80abb03cc02d0d
bcachefs: Make sure to drop/retake btree locks before reclaim

We really don't want to be invoking memory reclaim with btree locks
held: even aside from (solvable, but tricky) recursion issues, it can
cause painful to diagnose performance edge cases.

This fixes a recently reported issue in btree_key_can_insert_cached().

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Reported-by: Mateusz Guzik <mjguzik@gmail.com>
Fixes: https://lore.kernel.org/linux-bcachefs/CAGudoHEsb_hGRMeWeXh+UF6po0qQuuq_NKSEo+s1sEb6bDLjpA@mail.gmail.com/T/
fs/bcachefs/btree_trans_commit.c