1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _BCACHEFS_RECOVERY_H
3 #define _BCACHEFS_RECOVERY_H
7 enum btree_id btree_id:8;
17 #define for_each_journal_key(keys, i) \
18 for (i = (keys).d; i < (keys).d + (keys).nr; (i)++)
21 enum btree_id btree_id;
23 struct journal_keys *keys;
24 struct journal_key *k;
28 * Iterate over keys in the btree, with keys from the journal overlaid on top:
31 struct btree_and_journal_iter {
32 struct btree_iter *btree;
35 struct btree_node_iter node_iter;
38 struct journal_iter journal;
40 enum last_key_returned {
47 void bch2_btree_and_journal_iter_advance(struct btree_and_journal_iter *);
48 struct bkey_s_c bch2_btree_and_journal_iter_peek(struct btree_and_journal_iter *);
49 struct bkey_s_c bch2_btree_and_journal_iter_next(struct btree_and_journal_iter *);
51 void bch2_btree_and_journal_iter_init(struct btree_and_journal_iter *,
53 struct journal_keys *,
54 enum btree_id, struct bpos);
55 void bch2_btree_and_journal_iter_init_node_iter(struct btree_and_journal_iter *,
56 struct journal_keys *,
59 int bch2_fs_recovery(struct bch_fs *);
60 int bch2_fs_initialize(struct bch_fs *);
62 #endif /* _BCACHEFS_RECOVERY_H */