summaryrefslogtreecommitdiff
path: root/fs/bcachefs/journal_seq_blacklist.c
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2019-03-25 15:10:15 -0400
committerKent Overstreet <kent.overstreet@linux.dev>2023-10-22 17:08:18 -0400
commit424eb881300467a21a108d04c9dd08a6f8c007dc (patch)
tree760482adf8b16aa98b03932d5fabaab8e514c998 /fs/bcachefs/journal_seq_blacklist.c
parent5df4be3f62c9bde73db801504b3db2693b28328c (diff)
bcachefs: Only get btree iters from btree transactions
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs/journal_seq_blacklist.c')
-rw-r--r--fs/bcachefs/journal_seq_blacklist.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/fs/bcachefs/journal_seq_blacklist.c b/fs/bcachefs/journal_seq_blacklist.c
index c26f36d58633..45c8d38d12de 100644
--- a/fs/bcachefs/journal_seq_blacklist.c
+++ b/fs/bcachefs/journal_seq_blacklist.c
@@ -62,9 +62,12 @@ static void journal_seq_blacklist_flush(struct journal *j,
closure_init_stack(&cl);
for (i = 0;; i++) {
- struct btree_iter iter;
+ struct btree_trans trans;
+ struct btree_iter *iter;
struct btree *b;
+ bch2_trans_init(&trans, c);
+
mutex_lock(&j->blacklist_lock);
if (i >= bl->nr_entries) {
mutex_unlock(&j->blacklist_lock);
@@ -73,17 +76,17 @@ static void journal_seq_blacklist_flush(struct journal *j,
n = bl->entries[i];
mutex_unlock(&j->blacklist_lock);
- __bch2_btree_iter_init(&iter, c, n.btree_id, n.pos,
- 0, 0, BTREE_ITER_NODES);
+ iter = bch2_trans_get_node_iter(&trans, n.btree_id, n.pos,
+ 0, 0, 0);
- b = bch2_btree_iter_peek_node(&iter);
+ b = bch2_btree_iter_peek_node(iter);
/* The node might have already been rewritten: */
if (b->data->keys.seq == n.seq) {
- ret = bch2_btree_node_rewrite(c, &iter, n.seq, 0);
+ ret = bch2_btree_node_rewrite(c, iter, n.seq, 0);
if (ret) {
- bch2_btree_iter_unlock(&iter);
+ bch2_trans_exit(&trans);
bch2_fs_fatal_error(c,
"error %i rewriting btree node with blacklisted journal seq",
ret);
@@ -92,7 +95,7 @@ static void journal_seq_blacklist_flush(struct journal *j,
}
}
- bch2_btree_iter_unlock(&iter);
+ bch2_trans_exit(&trans);
}
for (i = 0;; i++) {