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