bcachefs: prefer drop_locks_do()
authorKent Overstreet <kent.overstreet@linux.dev>
Sat, 13 Apr 2024 21:40:06 +0000 (17:40 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Wed, 8 May 2024 21:29:19 +0000 (17:29 -0400)
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/btree_update_interior.c

index 6427328bcf1773a267cff4732c308c5ce2586b98..ce9712d7c764ff497d6c4d9d7021be663aebe30f 100644 (file)
@@ -1160,9 +1160,8 @@ bch2_btree_update_start(struct btree_trans *trans, struct btree_path *path,
                if (flags & BCH_TRANS_COMMIT_journal_reclaim)
                        return ERR_PTR(-BCH_ERR_journal_reclaim_would_deadlock);
 
-               bch2_trans_unlock(trans);
-               wait_event(c->journal.wait, !test_bit(JOURNAL_SPACE_LOW, &c->journal.flags));
-               ret = bch2_trans_relock(trans);
+               ret = drop_locks_do(trans,
+                       ({ wait_event(c->journal.wait, !test_bit(JOURNAL_SPACE_LOW, &c->journal.flags)); 0; }));
                if (ret)
                        return ERR_PTR(ret);
        }