summaryrefslogtreecommitdiff
path: root/libbcachefs/journal_seq_blacklist.c
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2019-03-28 05:21:24 -0400
committerKent Overstreet <kent.overstreet@gmail.com>2019-03-28 05:28:38 -0400
commit133dfeb64843af65a018be770eb005363ca59bd9 (patch)
tree6d37383fdb83a5bc618ec506fd1e14c22d7a32c2 /libbcachefs/journal_seq_blacklist.c
parent365d3450058ba0a8d282d8155bfcc2057837ab95 (diff)
Update bcachefs sources to d868a87c67 bcachefs: fix initial gc
Diffstat (limited to 'libbcachefs/journal_seq_blacklist.c')
-rw-r--r--libbcachefs/journal_seq_blacklist.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/libbcachefs/journal_seq_blacklist.c b/libbcachefs/journal_seq_blacklist.c
index dd0e8d2f..5bac41cf 100644
--- a/libbcachefs/journal_seq_blacklist.c
+++ b/libbcachefs/journal_seq_blacklist.c
@@ -61,9 +61,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);
@@ -72,17 +75,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);
@@ -91,7 +94,7 @@ static void journal_seq_blacklist_flush(struct journal *j,
}
}
- bch2_btree_iter_unlock(&iter);
+ bch2_trans_exit(&trans);
}
for (i = 0;; i++) {