diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2022-09-23 21:00:24 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2022-10-03 23:55:14 -0400 |
commit | 1c5623c645136d1a71037933741da230e2b316de (patch) | |
tree | 080d8b051682787135495249048b7c926bc7b035 | |
parent | c37e77d022c7d595475d18088180faf0116830a7 (diff) |
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 <kent.overstreet@linux.dev>
-rw-r--r-- | fs/bcachefs/btree_update_interior.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/bcachefs/btree_update_interior.c b/fs/bcachefs/btree_update_interior.c index 57c2e11e149f..803973ffc5f7 100644 --- a/fs/bcachefs/btree_update_interior.c +++ b/fs/bcachefs/btree_update_interior.c @@ -1115,10 +1115,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); } |