diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2022-09-23 21:00:24 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2023-10-22 17:09:41 -0400 |
commit | c6cf49a95ac7aea3450cacb66b7de1d46671deeb (patch) | |
tree | 7d0321a5334f5fde5c46b64dedc86db790f5b14b /fs/bcachefs/btree_update_interior.c | |
parent | 01ed3359b2705d7b862ad0644dabc616774f8779 (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>
Diffstat (limited to 'fs/bcachefs/btree_update_interior.c')
-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 7a682c1751b3..797efa738dc4 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); } |