From: Kent Overstreet Date: Sat, 24 Sep 2022 01:00:24 +0000 (-0400) Subject: bcachefs: Fix blocking with locks held X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=c6cf49a95ac7aea3450cacb66b7de1d46671deeb;p=linux.git bcachefs: Fix blocking with locks held This is a major oopsy - we should always be unlocking before calling closure_sync(), else we'll cause a deadlock. Signed-off-by: Kent Overstreet --- diff --git a/fs/bcachefs/btree_update_interior.c b/fs/bcachefs/btree_update_interior.c index 7a682c1751b3a..797efa738dc4f 100644 --- a/fs/bcachefs/btree_update_interior.c +++ b/fs/bcachefs/btree_update_interior.c @@ -1117,10 +1117,10 @@ bch2_btree_update_start(struct btree_trans *trans, struct btree_path *path, closure_init_stack(&cl); - bch2_trans_unlock(trans); - do { ret = bch2_btree_reserve_get(trans, as, nr_nodes, flags, &cl); + + bch2_trans_unlock(trans); closure_sync(&cl); } while (ret == -EAGAIN); }