Linux Audio

Check our new training course

Loading...
Note: File does not exist in v5.9.
 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/*
12 * Passes may be reordered, but the second field is a persistent identifier and
13 * must never change:
14 */
15#define BCH_RECOVERY_PASSES()							\
16	x(alloc_read,				 0, PASS_ALWAYS)		\
17	x(stripes_read,				 1, PASS_ALWAYS)		\
18	x(initialize_subvolumes,		 2, 0)				\
19	x(snapshots_read,			 3, PASS_ALWAYS)		\
20	x(check_topology,			 4, 0)				\
21	x(check_allocations,			 5, PASS_FSCK)			\
22	x(trans_mark_dev_sbs,			 6, PASS_ALWAYS|PASS_SILENT)	\
23	x(fs_journal_alloc,			 7, PASS_ALWAYS|PASS_SILENT)	\
24	x(set_may_go_rw,			 8, PASS_ALWAYS|PASS_SILENT)	\
25	x(journal_replay,			 9, PASS_ALWAYS)		\
26	x(check_alloc_info,			10, PASS_ONLINE|PASS_FSCK)	\
27	x(check_lrus,				11, PASS_ONLINE|PASS_FSCK)	\
28	x(check_btree_backpointers,		12, PASS_ONLINE|PASS_FSCK)	\
29	x(check_backpointers_to_extents,	13, PASS_ONLINE|PASS_FSCK)	\
30	x(check_extents_to_backpointers,	14, PASS_ONLINE|PASS_FSCK)	\
31	x(check_alloc_to_lru_refs,		15, PASS_ONLINE|PASS_FSCK)	\
32	x(fs_freespace_init,			16, PASS_ALWAYS|PASS_SILENT)	\
33	x(bucket_gens_init,			17, 0)				\
34	x(check_snapshot_trees,			18, PASS_ONLINE|PASS_FSCK)	\
35	x(check_snapshots,			19, PASS_ONLINE|PASS_FSCK)	\
36	x(check_subvols,			20, PASS_ONLINE|PASS_FSCK)	\
37	x(delete_dead_snapshots,		21, PASS_ONLINE|PASS_FSCK)	\
38	x(fs_upgrade_for_subvolumes,		22, 0)				\
39	x(resume_logged_ops,			23, PASS_ALWAYS)		\
40	x(check_inodes,				24, PASS_FSCK)			\
41	x(check_extents,			25, PASS_FSCK)			\
42	x(check_indirect_extents,		26, PASS_FSCK)			\
43	x(check_dirents,			27, PASS_FSCK)			\
44	x(check_xattrs,				28, PASS_FSCK)			\
45	x(check_root,				29, PASS_ONLINE|PASS_FSCK)	\
46	x(check_directory_structure,		30, PASS_ONLINE|PASS_FSCK)	\
47	x(check_nlinks,				31, PASS_FSCK)			\
48	x(delete_dead_inodes,			32, PASS_FSCK|PASS_UNCLEAN)	\
49	x(fix_reflink_p,			33, 0)				\
50	x(set_fs_needs_rebalance,		34, 0)				\
51
52/* We normally enumerate recovery passes in the order we run them: */
53enum bch_recovery_pass {
54#define x(n, id, when)	BCH_RECOVERY_PASS_##n,
55	BCH_RECOVERY_PASSES()
56#undef x
57};
58
59/* But we also need stable identifiers that can be used in the superblock */
60enum bch_recovery_pass_stable {
61#define x(n, id, when)	BCH_RECOVERY_PASS_STABLE_##n = id,
62	BCH_RECOVERY_PASSES()
63#undef x
64};
65
66#endif /* _BCACHEFS_RECOVERY_TYPES_H */