]> git.sesse.net Git - bcachefs-tools-debian/blob - libbcachefs/recovery_types.h
New upstream release
[bcachefs-tools-debian] / libbcachefs / recovery_types.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _BCACHEFS_RECOVERY_TYPES_H
3 #define _BCACHEFS_RECOVERY_TYPES_H
4
5 #define PASS_SILENT             BIT(0)
6 #define PASS_FSCK               BIT(1)
7 #define PASS_UNCLEAN            BIT(2)
8 #define PASS_ALWAYS             BIT(3)
9
10 #define BCH_RECOVERY_PASSES()                                                                   \
11         x(alloc_read,                   PASS_ALWAYS)                                            \
12         x(stripes_read,                 PASS_ALWAYS)                                            \
13         x(initialize_subvolumes,        0)                                                      \
14         x(snapshots_read,               PASS_ALWAYS)                                            \
15         x(check_topology,               0)                                                      \
16         x(check_allocations,            PASS_FSCK)                                              \
17         x(trans_mark_dev_sbs,           PASS_ALWAYS|PASS_SILENT)                                \
18         x(fs_journal_alloc,             PASS_ALWAYS|PASS_SILENT)                                \
19         x(set_may_go_rw,                PASS_ALWAYS|PASS_SILENT)                                \
20         x(journal_replay,               PASS_ALWAYS)                                            \
21         x(check_alloc_info,             PASS_FSCK)                                              \
22         x(check_lrus,                   PASS_FSCK)                                              \
23         x(check_btree_backpointers,     PASS_FSCK)                                              \
24         x(check_backpointers_to_extents,PASS_FSCK)                                              \
25         x(check_extents_to_backpointers,PASS_FSCK)                                              \
26         x(check_alloc_to_lru_refs,      PASS_FSCK)                                              \
27         x(fs_freespace_init,            PASS_ALWAYS|PASS_SILENT)                                \
28         x(bucket_gens_init,             0)                                                      \
29         x(check_snapshot_trees,         PASS_FSCK)                                              \
30         x(check_snapshots,              PASS_FSCK)                                              \
31         x(check_subvols,                PASS_FSCK)                                              \
32         x(delete_dead_snapshots,        PASS_FSCK)                                              \
33         x(fs_upgrade_for_subvolumes,    0)                                                      \
34         x(resume_logged_ops,            PASS_ALWAYS)                                            \
35         x(check_inodes,                 PASS_FSCK)                                              \
36         x(check_extents,                PASS_FSCK)                                              \
37         x(check_indirect_extents,       PASS_FSCK)                                              \
38         x(check_dirents,                PASS_FSCK)                                              \
39         x(check_xattrs,                 PASS_FSCK)                                              \
40         x(check_root,                   PASS_FSCK)                                              \
41         x(check_directory_structure,    PASS_FSCK)                                              \
42         x(check_nlinks,                 PASS_FSCK)                                              \
43         x(delete_dead_inodes,           PASS_FSCK|PASS_UNCLEAN)                                 \
44         x(fix_reflink_p,                0)                                                      \
45         x(set_fs_needs_rebalance,       0)                                                      \
46
47 enum bch_recovery_pass {
48 #define x(n, when)      BCH_RECOVERY_PASS_##n,
49         BCH_RECOVERY_PASSES()
50 #undef x
51 };
52
53 #endif /* _BCACHEFS_RECOVERY_TYPES_H */