]> git.sesse.net Git - bcachefs-tools-debian/blob - libbcachefs/recovery.h
Update bcachefs sources to b5fff15213 bcachefs: Fix ec_stripes_read()
[bcachefs-tools-debian] / libbcachefs / recovery.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _BCACHEFS_RECOVERY_H
3 #define _BCACHEFS_RECOVERY_H
4
5 struct journal_keys {
6         struct journal_key {
7                 enum btree_id   btree_id:8;
8                 unsigned        allocated:1;
9                 struct bpos     pos;
10                 struct bkey_i   *k;
11                 u32             journal_seq;
12                 u32             journal_offset;
13         }                       *d;
14         size_t                  nr;
15         u64                     journal_seq_base;
16 };
17
18 #define for_each_journal_key(keys, i)                           \
19         for (i = (keys).d; i < (keys).d + (keys).nr; (i)++)
20
21 struct journal_iter {
22         struct journal_keys     *keys;
23         struct journal_key      *k;
24         enum btree_id           btree_id;
25 };
26
27 struct journal_iter bch2_journal_iter_init(struct journal_keys *,
28                                            enum btree_id);
29 struct bkey_s_c bch2_journal_iter_peek(struct journal_iter *);
30 struct bkey_s_c bch2_journal_iter_next(struct journal_iter *);
31
32 int bch2_fs_recovery(struct bch_fs *);
33 int bch2_fs_initialize(struct bch_fs *);
34
35 #endif /* _BCACHEFS_RECOVERY_H */