summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2022-06-06 23:34:58 -0400
committerKent Overstreet <kent.overstreet@gmail.com>2022-06-07 00:23:32 -0400
commit3e3642b2fdeb2dc5991055e60049558e1ab2a9c8 (patch)
treecd89c121bf7c23ca318e10bcf70b388ce7d4dcd0
parent1495936db7d57b0ebcf30304d4f3a8703b6e2904 (diff)
fixup! bcachefs: Gap buffer for journal keys
-rw-r--r--fs/bcachefs/recovery.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/fs/bcachefs/recovery.c b/fs/bcachefs/recovery.c
index d08ceb160ae0..0e4cae8ddfbb 100644
--- a/fs/bcachefs/recovery.c
+++ b/fs/bcachefs/recovery.c
@@ -297,32 +297,32 @@ void bch2_journal_key_overwritten(struct bch_fs *c, enum btree_id btree,
keys->d[idx].overwritten = true;
}
-static struct bkey_i *bch2_journal_iter_peek(struct journal_iter *iter)
+static void bch2_journal_iter_advance(struct journal_iter *iter)
+{
+ if (iter->idx < iter->keys->size) {
+ iter->idx++;
+ if (iter->idx == iter->keys->gap)
+ iter->idx += iter->keys->size - iter->keys->nr;
+ }
+}
+
+struct bkey_i *bch2_journal_iter_peek(struct journal_iter *iter)
{
struct journal_key *k = iter->keys->d + iter->idx;
- while (k < iter->keys->d + iter->keys->nr &&
+ while (k < iter->keys->d + iter->keys->size &&
k->btree_id == iter->btree_id &&
k->level == iter->level) {
if (!k->overwritten)
return k->k;
- iter->idx++;
+ bch2_journal_iter_advance(iter);
k = iter->keys->d + iter->idx;
}
return NULL;
}
-static void bch2_journal_iter_advance(struct journal_iter *iter)
-{
- if (iter->idx < iter->keys->size) {
- iter->idx++;
- if (iter->idx == iter->keys->gap)
- iter->idx += iter->keys->size - iter->keys->nr;
- }
-}
-
static void bch2_journal_iter_exit(struct journal_iter *iter)
{
list_del(&iter->list);