summaryrefslogtreecommitdiff
path: root/fs/bcachefs/btree_iter.c
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2019-04-04 21:53:12 -0400
committerKent Overstreet <kent.overstreet@gmail.com>2019-04-04 22:23:43 -0400
commitd83b992f653d9f742f3f8567dbcfd1f4f72e858f (patch)
treea453bd4f6210cb6465b51120bda7597800c96cdc /fs/bcachefs/btree_iter.c
parent9408d84fa9cc75251b1e2dcca8490baebb9e95e9 (diff)
bcachefs: Rewrite journal_seq_blacklist machinery
Now, we store blacklisted journal sequence numbers in the superblock, not the journal: this helps to greatly simplify the code, and more importantly it's now implemented in a way that doesn't require all btree nodes to be visited before starting the journal - instead, we unconditionally blacklist the next 4 journal sequence numbers after an unclean shutdown.
Diffstat (limited to 'fs/bcachefs/btree_iter.c')
-rw-r--r--fs/bcachefs/btree_iter.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/bcachefs/btree_iter.c b/fs/bcachefs/btree_iter.c
index 78f27ff800d0..33cbc2ff5c9a 100644
--- a/fs/bcachefs/btree_iter.c
+++ b/fs/bcachefs/btree_iter.c
@@ -1155,6 +1155,8 @@ struct btree *bch2_btree_iter_next_node(struct btree_iter *iter, unsigned depth)
if (!btree_iter_node(iter, iter->level))
return NULL;
+ bch2_trans_cond_resched(iter->trans);
+
btree_iter_up(iter);
if (!bch2_btree_node_relock(iter, iter->level))