diff --git a/fs/bcachefs/btree_iter.c b/fs/bcachefs/btree_iter.c
index 803cc58ff577e7a5655e8c8f4ad737aad1519046..36872207f09b22ac597d18b87e18ece7b07a92fc 100644
--- a/fs/bcachefs/btree_iter.c
+++ b/fs/bcachefs/btree_iter.c
@@ -3282,7 +3282,8 @@ bool bch2_current_has_btree_trans(struct bch_fs *c)
 	struct btree_trans *trans;
 	bool ret = false;
 	list_for_each_entry(trans, &c->btree_trans_list, list)
-		if (trans->locking_wait.task == current) {
+		if (trans->locking_wait.task == current &&
+		    trans->locked) {
 			ret = true;
 			break;
 		}