xref: /linux/fs/bcachefs/sb-errors_format.h (revision a4c763129fbcc7da5d3134ea95f9577f25bc637d)
1759bb4eaSKent Overstreet /* SPDX-License-Identifier: GPL-2.0 */
2759bb4eaSKent Overstreet #ifndef _BCACHEFS_SB_ERRORS_FORMAT_H
3759bb4eaSKent Overstreet #define _BCACHEFS_SB_ERRORS_FORMAT_H
4759bb4eaSKent Overstreet 
533dfafa9SKent Overstreet enum bch_fsck_flags {
633dfafa9SKent Overstreet 	FSCK_CAN_FIX		= 1 << 0,
733dfafa9SKent Overstreet 	FSCK_CAN_IGNORE		= 1 << 1,
833dfafa9SKent Overstreet 	FSCK_NEED_FSCK		= 1 << 2,
933dfafa9SKent Overstreet 	FSCK_NO_RATELIMIT	= 1 << 3,
1033dfafa9SKent Overstreet 	FSCK_AUTOFIX		= 1 << 4,
1133dfafa9SKent Overstreet };
1233dfafa9SKent Overstreet 
13759bb4eaSKent Overstreet #define BCH_SB_ERRS()									\
1433dfafa9SKent Overstreet 	x(clean_but_journal_not_empty,				  0,	0)		\
1533dfafa9SKent Overstreet 	x(dirty_but_no_journal_entries,				  1,	0)		\
1633dfafa9SKent Overstreet 	x(dirty_but_no_journal_entries_post_drop_nonflushes,	  2,	0)		\
1733dfafa9SKent Overstreet 	x(sb_clean_journal_seq_mismatch,			  3,	0)		\
1833dfafa9SKent Overstreet 	x(sb_clean_btree_root_mismatch,				  4,	0)		\
1933dfafa9SKent Overstreet 	x(sb_clean_missing,					  5,	0)		\
2033dfafa9SKent Overstreet 	x(jset_unsupported_version,				  6,	0)		\
2133dfafa9SKent Overstreet 	x(jset_unknown_csum,					  7,	0)		\
2233dfafa9SKent Overstreet 	x(jset_last_seq_newer_than_seq,				  8,	0)		\
2333dfafa9SKent Overstreet 	x(jset_past_bucket_end,					  9,	0)		\
2433dfafa9SKent Overstreet 	x(jset_seq_blacklisted,					 10,	0)		\
2533dfafa9SKent Overstreet 	x(journal_entries_missing,				 11,	0)		\
26*3d3020c4SKent Overstreet 	x(journal_entry_replicas_not_marked,			 12,	FSCK_AUTOFIX)	\
2733dfafa9SKent Overstreet 	x(journal_entry_past_jset_end,				 13,	0)		\
2833dfafa9SKent Overstreet 	x(journal_entry_replicas_data_mismatch,			 14,	0)		\
2933dfafa9SKent Overstreet 	x(journal_entry_bkey_u64s_0,				 15,	0)		\
3033dfafa9SKent Overstreet 	x(journal_entry_bkey_past_end,				 16,	0)		\
3133dfafa9SKent Overstreet 	x(journal_entry_bkey_bad_format,			 17,	0)		\
3233dfafa9SKent Overstreet 	x(journal_entry_bkey_invalid,				 18,	0)		\
3333dfafa9SKent Overstreet 	x(journal_entry_btree_root_bad_size,			 19,	0)		\
3433dfafa9SKent Overstreet 	x(journal_entry_blacklist_bad_size,			 20,	0)		\
3533dfafa9SKent Overstreet 	x(journal_entry_blacklist_v2_bad_size,			 21,	0)		\
3633dfafa9SKent Overstreet 	x(journal_entry_blacklist_v2_start_past_end,		 22,	0)		\
3733dfafa9SKent Overstreet 	x(journal_entry_usage_bad_size,				 23,	0)		\
3833dfafa9SKent Overstreet 	x(journal_entry_data_usage_bad_size,			 24,	0)		\
3933dfafa9SKent Overstreet 	x(journal_entry_clock_bad_size,				 25,	0)		\
4033dfafa9SKent Overstreet 	x(journal_entry_clock_bad_rw,				 26,	0)		\
4133dfafa9SKent Overstreet 	x(journal_entry_dev_usage_bad_size,			 27,	0)		\
4233dfafa9SKent Overstreet 	x(journal_entry_dev_usage_bad_dev,			 28,	0)		\
4333dfafa9SKent Overstreet 	x(journal_entry_dev_usage_bad_pad,			 29,	0)		\
4433dfafa9SKent Overstreet 	x(btree_node_unreadable,				 30,	0)		\
4533dfafa9SKent Overstreet 	x(btree_node_fault_injected,				 31,	0)		\
4633dfafa9SKent Overstreet 	x(btree_node_bad_magic,					 32,	0)		\
4733dfafa9SKent Overstreet 	x(btree_node_bad_seq,					 33,	0)		\
4833dfafa9SKent Overstreet 	x(btree_node_unsupported_version,			 34,	0)		\
4933dfafa9SKent Overstreet 	x(btree_node_bset_older_than_sb_min,			 35,	0)		\
5033dfafa9SKent Overstreet 	x(btree_node_bset_newer_than_sb,			 36,	0)		\
5133dfafa9SKent Overstreet 	x(btree_node_data_missing,				 37,	0)		\
5233dfafa9SKent Overstreet 	x(btree_node_bset_after_end,				 38,	0)		\
5333dfafa9SKent Overstreet 	x(btree_node_replicas_sectors_written_mismatch,		 39,	0)		\
5433dfafa9SKent Overstreet 	x(btree_node_replicas_data_mismatch,			 40,	0)		\
5533dfafa9SKent Overstreet 	x(bset_unknown_csum,					 41,	0)		\
5633dfafa9SKent Overstreet 	x(bset_bad_csum,					 42,	0)		\
5733dfafa9SKent Overstreet 	x(bset_past_end_of_btree_node,				 43,	0)		\
5833dfafa9SKent Overstreet 	x(bset_wrong_sector_offset,				 44,	0)		\
5933dfafa9SKent Overstreet 	x(bset_empty,						 45,	0)		\
6033dfafa9SKent Overstreet 	x(bset_bad_seq,						 46,	0)		\
6133dfafa9SKent Overstreet 	x(bset_blacklisted_journal_seq,				 47,	0)		\
6233dfafa9SKent Overstreet 	x(first_bset_blacklisted_journal_seq,			 48,	0)		\
6333dfafa9SKent Overstreet 	x(btree_node_bad_btree,					 49,	0)		\
6433dfafa9SKent Overstreet 	x(btree_node_bad_level,					 50,	0)		\
6533dfafa9SKent Overstreet 	x(btree_node_bad_min_key,				 51,	0)		\
6633dfafa9SKent Overstreet 	x(btree_node_bad_max_key,				 52,	0)		\
6733dfafa9SKent Overstreet 	x(btree_node_bad_format,				 53,	0)		\
6833dfafa9SKent Overstreet 	x(btree_node_bkey_past_bset_end,			 54,	0)		\
6933dfafa9SKent Overstreet 	x(btree_node_bkey_bad_format,				 55,	0)		\
7033dfafa9SKent Overstreet 	x(btree_node_bad_bkey,					 56,	0)		\
7133dfafa9SKent Overstreet 	x(btree_node_bkey_out_of_order,				 57,	0)		\
7233dfafa9SKent Overstreet 	x(btree_root_bkey_invalid,				 58,	0)		\
7333dfafa9SKent Overstreet 	x(btree_root_read_error,				 59,	0)		\
7433dfafa9SKent Overstreet 	x(btree_root_bad_min_key,				 60,	0)		\
7533dfafa9SKent Overstreet 	x(btree_root_bad_max_key,				 61,	0)		\
7633dfafa9SKent Overstreet 	x(btree_node_read_error,				 62,	0)		\
7733dfafa9SKent Overstreet 	x(btree_node_topology_bad_min_key,			 63,	0)		\
7833dfafa9SKent Overstreet 	x(btree_node_topology_bad_max_key,			 64,	0)		\
7933dfafa9SKent Overstreet 	x(btree_node_topology_overwritten_by_prev_node,		 65,	0)		\
8033dfafa9SKent Overstreet 	x(btree_node_topology_overwritten_by_next_node,		 66,	0)		\
8133dfafa9SKent Overstreet 	x(btree_node_topology_interior_node_empty,		 67,	0)		\
8233dfafa9SKent Overstreet 	x(fs_usage_hidden_wrong,				 68,	FSCK_AUTOFIX)	\
8333dfafa9SKent Overstreet 	x(fs_usage_btree_wrong,					 69,	FSCK_AUTOFIX)	\
8433dfafa9SKent Overstreet 	x(fs_usage_data_wrong,					 70,	FSCK_AUTOFIX)	\
8533dfafa9SKent Overstreet 	x(fs_usage_cached_wrong,				 71,	FSCK_AUTOFIX)	\
8633dfafa9SKent Overstreet 	x(fs_usage_reserved_wrong,				 72,	FSCK_AUTOFIX)	\
8733dfafa9SKent Overstreet 	x(fs_usage_persistent_reserved_wrong,			 73,	FSCK_AUTOFIX)	\
8833dfafa9SKent Overstreet 	x(fs_usage_nr_inodes_wrong,				 74,	FSCK_AUTOFIX)	\
8933dfafa9SKent Overstreet 	x(fs_usage_replicas_wrong,				 75,	FSCK_AUTOFIX)	\
9033dfafa9SKent Overstreet 	x(dev_usage_buckets_wrong,				 76,	FSCK_AUTOFIX)	\
9133dfafa9SKent Overstreet 	x(dev_usage_sectors_wrong,				 77,	FSCK_AUTOFIX)	\
9233dfafa9SKent Overstreet 	x(dev_usage_fragmented_wrong,				 78,	FSCK_AUTOFIX)	\
9333dfafa9SKent Overstreet 	x(dev_usage_buckets_ec_wrong,				 79,	FSCK_AUTOFIX)	\
9433dfafa9SKent Overstreet 	x(bkey_version_in_future,				 80,	0)		\
9533dfafa9SKent Overstreet 	x(bkey_u64s_too_small,					 81,	0)		\
9633dfafa9SKent Overstreet 	x(bkey_invalid_type_for_btree,				 82,	0)		\
9733dfafa9SKent Overstreet 	x(bkey_extent_size_zero,				 83,	0)		\
9833dfafa9SKent Overstreet 	x(bkey_extent_size_greater_than_offset,			 84,	0)		\
9933dfafa9SKent Overstreet 	x(bkey_size_nonzero,					 85,	0)		\
10033dfafa9SKent Overstreet 	x(bkey_snapshot_nonzero,				 86,	0)		\
10133dfafa9SKent Overstreet 	x(bkey_snapshot_zero,					 87,	0)		\
10233dfafa9SKent Overstreet 	x(bkey_at_pos_max,					 88,	0)		\
10333dfafa9SKent Overstreet 	x(bkey_before_start_of_btree_node,			 89,	0)		\
10433dfafa9SKent Overstreet 	x(bkey_after_end_of_btree_node,				 90,	0)		\
10533dfafa9SKent Overstreet 	x(bkey_val_size_nonzero,				 91,	0)		\
10633dfafa9SKent Overstreet 	x(bkey_val_size_too_small,				 92,	0)		\
10733dfafa9SKent Overstreet 	x(alloc_v1_val_size_bad,				 93,	0)		\
10833dfafa9SKent Overstreet 	x(alloc_v2_unpack_error,				 94,	0)		\
10933dfafa9SKent Overstreet 	x(alloc_v3_unpack_error,				 95,	0)		\
11033dfafa9SKent Overstreet 	x(alloc_v4_val_size_bad,				 96,	0)		\
11133dfafa9SKent Overstreet 	x(alloc_v4_backpointers_start_bad,			 97,	0)		\
11233dfafa9SKent Overstreet 	x(alloc_key_data_type_bad,				 98,	0)		\
11333dfafa9SKent Overstreet 	x(alloc_key_empty_but_have_data,			 99,	0)		\
11433dfafa9SKent Overstreet 	x(alloc_key_dirty_sectors_0,				100,	0)		\
11533dfafa9SKent Overstreet 	x(alloc_key_data_type_inconsistency,			101,	0)		\
11633dfafa9SKent Overstreet 	x(alloc_key_to_missing_dev_bucket,			102,	0)		\
11733dfafa9SKent Overstreet 	x(alloc_key_cached_inconsistency,			103,	0)		\
11833dfafa9SKent Overstreet 	x(alloc_key_cached_but_read_time_zero,			104,	0)		\
11933dfafa9SKent Overstreet 	x(alloc_key_to_missing_lru_entry,			105,	0)		\
12033dfafa9SKent Overstreet 	x(alloc_key_data_type_wrong,				106,	FSCK_AUTOFIX)	\
12133dfafa9SKent Overstreet 	x(alloc_key_gen_wrong,					107,	FSCK_AUTOFIX)	\
12233dfafa9SKent Overstreet 	x(alloc_key_dirty_sectors_wrong,			108,	FSCK_AUTOFIX)	\
12333dfafa9SKent Overstreet 	x(alloc_key_cached_sectors_wrong,			109,	FSCK_AUTOFIX)	\
12433dfafa9SKent Overstreet 	x(alloc_key_stripe_wrong,				110,	FSCK_AUTOFIX)	\
12533dfafa9SKent Overstreet 	x(alloc_key_stripe_redundancy_wrong,			111,	FSCK_AUTOFIX)	\
12633dfafa9SKent Overstreet 	x(bucket_sector_count_overflow,				112,	0)		\
12733dfafa9SKent Overstreet 	x(bucket_metadata_type_mismatch,			113,	0)		\
12833dfafa9SKent Overstreet 	x(need_discard_key_wrong,				114,	0)		\
12933dfafa9SKent Overstreet 	x(freespace_key_wrong,					115,	0)		\
13033dfafa9SKent Overstreet 	x(freespace_hole_missing,				116,	0)		\
13133dfafa9SKent Overstreet 	x(bucket_gens_val_size_bad,				117,	0)		\
13233dfafa9SKent Overstreet 	x(bucket_gens_key_wrong,				118,	0)		\
13333dfafa9SKent Overstreet 	x(bucket_gens_hole_wrong,				119,	0)		\
13433dfafa9SKent Overstreet 	x(bucket_gens_to_invalid_dev,				120,	0)		\
13533dfafa9SKent Overstreet 	x(bucket_gens_to_invalid_buckets,			121,	0)		\
13633dfafa9SKent Overstreet 	x(bucket_gens_nonzero_for_invalid_buckets,		122,	0)		\
13733dfafa9SKent Overstreet 	x(need_discard_freespace_key_to_invalid_dev_bucket,	123,	0)		\
13833dfafa9SKent Overstreet 	x(need_discard_freespace_key_bad,			124,	0)		\
13933dfafa9SKent Overstreet 	x(backpointer_bucket_offset_wrong,			125,	0)		\
14033dfafa9SKent Overstreet 	x(backpointer_to_missing_device,			126,	0)		\
14133dfafa9SKent Overstreet 	x(backpointer_to_missing_alloc,				127,	0)		\
14233dfafa9SKent Overstreet 	x(backpointer_to_missing_ptr,				128,	0)		\
14333dfafa9SKent Overstreet 	x(lru_entry_at_time_0,					129,	0)		\
14433dfafa9SKent Overstreet 	x(lru_entry_to_invalid_bucket,				130,	0)		\
14533dfafa9SKent Overstreet 	x(lru_entry_bad,					131,	0)		\
14633dfafa9SKent Overstreet 	x(btree_ptr_val_too_big,				132,	0)		\
14733dfafa9SKent Overstreet 	x(btree_ptr_v2_val_too_big,				133,	0)		\
14833dfafa9SKent Overstreet 	x(btree_ptr_has_non_ptr,				134,	0)		\
14933dfafa9SKent Overstreet 	x(extent_ptrs_invalid_entry,				135,	0)		\
15033dfafa9SKent Overstreet 	x(extent_ptrs_no_ptrs,					136,	0)		\
15133dfafa9SKent Overstreet 	x(extent_ptrs_too_many_ptrs,				137,	0)		\
15233dfafa9SKent Overstreet 	x(extent_ptrs_redundant_crc,				138,	0)		\
15333dfafa9SKent Overstreet 	x(extent_ptrs_redundant_stripe,				139,	0)		\
15433dfafa9SKent Overstreet 	x(extent_ptrs_unwritten,				140,	0)		\
15533dfafa9SKent Overstreet 	x(extent_ptrs_written_and_unwritten,			141,	0)		\
15633dfafa9SKent Overstreet 	x(ptr_to_invalid_device,				142,	0)		\
15733dfafa9SKent Overstreet 	x(ptr_to_duplicate_device,				143,	0)		\
15833dfafa9SKent Overstreet 	x(ptr_after_last_bucket,				144,	0)		\
15933dfafa9SKent Overstreet 	x(ptr_before_first_bucket,				145,	0)		\
16033dfafa9SKent Overstreet 	x(ptr_spans_multiple_buckets,				146,	0)		\
16133dfafa9SKent Overstreet 	x(ptr_to_missing_backpointer,				147,	0)		\
16233dfafa9SKent Overstreet 	x(ptr_to_missing_alloc_key,				148,	0)		\
16333dfafa9SKent Overstreet 	x(ptr_to_missing_replicas_entry,			149,	0)		\
16433dfafa9SKent Overstreet 	x(ptr_to_missing_stripe,				150,	0)		\
16533dfafa9SKent Overstreet 	x(ptr_to_incorrect_stripe,				151,	0)		\
16633dfafa9SKent Overstreet 	x(ptr_gen_newer_than_bucket_gen,			152,	0)		\
16733dfafa9SKent Overstreet 	x(ptr_too_stale,					153,	0)		\
16833dfafa9SKent Overstreet 	x(stale_dirty_ptr,					154,	0)		\
16933dfafa9SKent Overstreet 	x(ptr_bucket_data_type_mismatch,			155,	0)		\
17033dfafa9SKent Overstreet 	x(ptr_cached_and_erasure_coded,				156,	0)		\
17133dfafa9SKent Overstreet 	x(ptr_crc_uncompressed_size_too_small,			157,	0)		\
17233dfafa9SKent Overstreet 	x(ptr_crc_csum_type_unknown,				158,	0)		\
17333dfafa9SKent Overstreet 	x(ptr_crc_compression_type_unknown,			159,	0)		\
17433dfafa9SKent Overstreet 	x(ptr_crc_redundant,					160,	0)		\
17533dfafa9SKent Overstreet 	x(ptr_crc_uncompressed_size_too_big,			161,	0)		\
17633dfafa9SKent Overstreet 	x(ptr_crc_nonce_mismatch,				162,	0)		\
17733dfafa9SKent Overstreet 	x(ptr_stripe_redundant,					163,	0)		\
17833dfafa9SKent Overstreet 	x(reservation_key_nr_replicas_invalid,			164,	0)		\
17933dfafa9SKent Overstreet 	x(reflink_v_refcount_wrong,				165,	0)		\
18033dfafa9SKent Overstreet 	x(reflink_p_to_missing_reflink_v,			166,	0)		\
18133dfafa9SKent Overstreet 	x(stripe_pos_bad,					167,	0)		\
18233dfafa9SKent Overstreet 	x(stripe_val_size_bad,					168,	0)		\
18333dfafa9SKent Overstreet 	x(stripe_sector_count_wrong,				169,	0)		\
18433dfafa9SKent Overstreet 	x(snapshot_tree_pos_bad,				170,	0)		\
18533dfafa9SKent Overstreet 	x(snapshot_tree_to_missing_snapshot,			171,	0)		\
18633dfafa9SKent Overstreet 	x(snapshot_tree_to_missing_subvol,			172,	0)		\
18733dfafa9SKent Overstreet 	x(snapshot_tree_to_wrong_subvol,			173,	0)		\
18833dfafa9SKent Overstreet 	x(snapshot_tree_to_snapshot_subvol,			174,	0)		\
18933dfafa9SKent Overstreet 	x(snapshot_pos_bad,					175,	0)		\
19033dfafa9SKent Overstreet 	x(snapshot_parent_bad,					176,	0)		\
19133dfafa9SKent Overstreet 	x(snapshot_children_not_normalized,			177,	0)		\
19233dfafa9SKent Overstreet 	x(snapshot_child_duplicate,				178,	0)		\
19333dfafa9SKent Overstreet 	x(snapshot_child_bad,					179,	0)		\
19433dfafa9SKent Overstreet 	x(snapshot_skiplist_not_normalized,			180,	0)		\
19533dfafa9SKent Overstreet 	x(snapshot_skiplist_bad,				181,	0)		\
19633dfafa9SKent Overstreet 	x(snapshot_should_not_have_subvol,			182,	0)		\
19733dfafa9SKent Overstreet 	x(snapshot_to_bad_snapshot_tree,			183,	0)		\
19833dfafa9SKent Overstreet 	x(snapshot_bad_depth,					184,	0)		\
19933dfafa9SKent Overstreet 	x(snapshot_bad_skiplist,				185,	0)		\
20033dfafa9SKent Overstreet 	x(subvol_pos_bad,					186,	0)		\
20133dfafa9SKent Overstreet 	x(subvol_not_master_and_not_snapshot,			187,	0)		\
20233dfafa9SKent Overstreet 	x(subvol_to_missing_root,				188,	0)		\
20333dfafa9SKent Overstreet 	x(subvol_root_wrong_bi_subvol,				189,	0)		\
20433dfafa9SKent Overstreet 	x(bkey_in_missing_snapshot,				190,	0)		\
20533dfafa9SKent Overstreet 	x(inode_pos_inode_nonzero,				191,	0)		\
20633dfafa9SKent Overstreet 	x(inode_pos_blockdev_range,				192,	0)		\
20733dfafa9SKent Overstreet 	x(inode_unpack_error,					193,	0)		\
20833dfafa9SKent Overstreet 	x(inode_str_hash_invalid,				194,	0)		\
20933dfafa9SKent Overstreet 	x(inode_v3_fields_start_bad,				195,	0)		\
21033dfafa9SKent Overstreet 	x(inode_snapshot_mismatch,				196,	0)		\
21133dfafa9SKent Overstreet 	x(inode_unlinked_but_clean,				197,	0)		\
21233dfafa9SKent Overstreet 	x(inode_unlinked_but_nlink_nonzero,			198,	0)		\
21333dfafa9SKent Overstreet 	x(inode_checksum_type_invalid,				199,	0)		\
21433dfafa9SKent Overstreet 	x(inode_compression_type_invalid,			200,	0)		\
21533dfafa9SKent Overstreet 	x(inode_subvol_root_but_not_dir,			201,	0)		\
21633dfafa9SKent Overstreet 	x(inode_i_size_dirty_but_clean,				202,	0)		\
21733dfafa9SKent Overstreet 	x(inode_i_sectors_dirty_but_clean,			203,	0)		\
21833dfafa9SKent Overstreet 	x(inode_i_sectors_wrong,				204,	0)		\
21933dfafa9SKent Overstreet 	x(inode_dir_wrong_nlink,				205,	0)		\
22033dfafa9SKent Overstreet 	x(inode_dir_multiple_links,				206,	0)		\
22133dfafa9SKent Overstreet 	x(inode_multiple_links_but_nlink_0,			207,	0)		\
22233dfafa9SKent Overstreet 	x(inode_wrong_backpointer,				208,	0)		\
22333dfafa9SKent Overstreet 	x(inode_wrong_nlink,					209,	0)		\
22433dfafa9SKent Overstreet 	x(inode_unreachable,					210,	0)		\
22533dfafa9SKent Overstreet 	x(deleted_inode_but_clean,				211,	0)		\
22633dfafa9SKent Overstreet 	x(deleted_inode_missing,				212,	0)		\
22733dfafa9SKent Overstreet 	x(deleted_inode_is_dir,					213,	0)		\
22833dfafa9SKent Overstreet 	x(deleted_inode_not_unlinked,				214,	0)		\
22933dfafa9SKent Overstreet 	x(extent_overlapping,					215,	0)		\
230c13d526dSKent Overstreet 	x(key_in_missing_inode,					216,	0)		\
231c13d526dSKent Overstreet 	x(key_in_wrong_inode_type,				217,	0)		\
23233dfafa9SKent Overstreet 	x(extent_past_end_of_inode,				218,	0)		\
23333dfafa9SKent Overstreet 	x(dirent_empty_name,					219,	0)		\
23433dfafa9SKent Overstreet 	x(dirent_val_too_big,					220,	0)		\
23533dfafa9SKent Overstreet 	x(dirent_name_too_long,					221,	0)		\
23633dfafa9SKent Overstreet 	x(dirent_name_embedded_nul,				222,	0)		\
23733dfafa9SKent Overstreet 	x(dirent_name_dot_or_dotdot,				223,	0)		\
23833dfafa9SKent Overstreet 	x(dirent_name_has_slash,				224,	0)		\
23933dfafa9SKent Overstreet 	x(dirent_d_type_wrong,					225,	0)		\
24033dfafa9SKent Overstreet 	x(inode_bi_parent_wrong,				226,	0)		\
24133dfafa9SKent Overstreet 	x(dirent_in_missing_dir_inode,				227,	0)		\
24233dfafa9SKent Overstreet 	x(dirent_in_non_dir_inode,				228,	0)		\
24333dfafa9SKent Overstreet 	x(dirent_to_missing_inode,				229,	0)		\
24433dfafa9SKent Overstreet 	x(dirent_to_missing_subvol,				230,	0)		\
24533dfafa9SKent Overstreet 	x(dirent_to_itself,					231,	0)		\
24633dfafa9SKent Overstreet 	x(quota_type_invalid,					232,	0)		\
24733dfafa9SKent Overstreet 	x(xattr_val_size_too_small,				233,	0)		\
24833dfafa9SKent Overstreet 	x(xattr_val_size_too_big,				234,	0)		\
24933dfafa9SKent Overstreet 	x(xattr_invalid_type,					235,	0)		\
25033dfafa9SKent Overstreet 	x(xattr_name_invalid_chars,				236,	0)		\
25133dfafa9SKent Overstreet 	x(xattr_in_missing_inode,				237,	0)		\
25233dfafa9SKent Overstreet 	x(root_subvol_missing,					238,	0)		\
25333dfafa9SKent Overstreet 	x(root_dir_missing,					239,	0)		\
25433dfafa9SKent Overstreet 	x(root_inode_not_dir,					240,	0)		\
25533dfafa9SKent Overstreet 	x(dir_loop,						241,	0)		\
25633dfafa9SKent Overstreet 	x(hash_table_key_duplicate,				242,	0)		\
25733dfafa9SKent Overstreet 	x(hash_table_key_wrong_offset,				243,	0)		\
25833dfafa9SKent Overstreet 	x(unlinked_inode_not_on_deleted_list,			244,	0)		\
25933dfafa9SKent Overstreet 	x(reflink_p_front_pad_bad,				245,	0)		\
26033dfafa9SKent Overstreet 	x(journal_entry_dup_same_device,			246,	0)		\
26133dfafa9SKent Overstreet 	x(inode_bi_subvol_missing,				247,	0)		\
26233dfafa9SKent Overstreet 	x(inode_bi_subvol_wrong,				248,	0)		\
26333dfafa9SKent Overstreet 	x(inode_points_to_missing_dirent,			249,	0)		\
26433dfafa9SKent Overstreet 	x(inode_points_to_wrong_dirent,				250,	0)		\
26533dfafa9SKent Overstreet 	x(inode_bi_parent_nonzero,				251,	0)		\
26633dfafa9SKent Overstreet 	x(dirent_to_missing_parent_subvol,			252,	0)		\
26733dfafa9SKent Overstreet 	x(dirent_not_visible_in_parent_subvol,			253,	0)		\
26833dfafa9SKent Overstreet 	x(subvol_fs_path_parent_wrong,				254,	0)		\
26933dfafa9SKent Overstreet 	x(subvol_root_fs_path_parent_nonzero,			255,	0)		\
27033dfafa9SKent Overstreet 	x(subvol_children_not_set,				256,	0)		\
27133dfafa9SKent Overstreet 	x(subvol_children_bad,					257,	0)		\
27233dfafa9SKent Overstreet 	x(subvol_loop,						258,	0)		\
27333dfafa9SKent Overstreet 	x(subvol_unreachable,					259,	0)		\
27433dfafa9SKent Overstreet 	x(btree_node_bkey_bad_u64s,				260,	0)		\
27533dfafa9SKent Overstreet 	x(btree_node_topology_empty_interior_node,		261,	0)		\
27633dfafa9SKent Overstreet 	x(btree_ptr_v2_min_key_bad,				262,	0)		\
27733dfafa9SKent Overstreet 	x(btree_root_unreadable_and_scan_found_nothing,		263,	0)		\
27833dfafa9SKent Overstreet 	x(snapshot_node_missing,				264,	0)		\
27933dfafa9SKent Overstreet 	x(dup_backpointer_to_bad_csum_extent,			265,	0)		\
28033dfafa9SKent Overstreet 	x(btree_bitmap_not_marked,				266,	0)		\
28133dfafa9SKent Overstreet 	x(sb_clean_entry_overrun,				267,	0)		\
28233dfafa9SKent Overstreet 	x(btree_ptr_v2_written_0,				268,	0)		\
28333dfafa9SKent Overstreet 	x(subvol_snapshot_bad,					269,	0)		\
28433dfafa9SKent Overstreet 	x(subvol_inode_bad,					270,	0)		\
28533dfafa9SKent Overstreet 	x(alloc_key_stripe_sectors_wrong,			271,	0)		\
28633dfafa9SKent Overstreet 	x(accounting_mismatch,					272,	0)		\
28733dfafa9SKent Overstreet 	x(accounting_replicas_not_marked,			273,	0)		\
28833dfafa9SKent Overstreet 	x(invalid_btree_id,					274,	0)		\
289b5cbb42dSKent Overstreet 	x(alloc_key_io_time_bad,				275,	0)		\
290077e4737SKent Overstreet 	x(alloc_key_fragmentation_lru_wrong,			276,	FSCK_AUTOFIX)	\
291*3d3020c4SKent Overstreet 	x(accounting_key_junk_at_end,				277,	FSCK_AUTOFIX)	\
292*3d3020c4SKent Overstreet 	x(accounting_key_replicas_nr_devs_0,			278,	FSCK_AUTOFIX)	\
293*3d3020c4SKent Overstreet 	x(accounting_key_replicas_nr_required_bad,		279,	FSCK_AUTOFIX)	\
294*3d3020c4SKent Overstreet 	x(accounting_key_replicas_devs_unsorted,		280,	FSCK_AUTOFIX)	\
295759bb4eaSKent Overstreet 
296759bb4eaSKent Overstreet enum bch_sb_error_id {
29733dfafa9SKent Overstreet #define x(t, n, ...) BCH_FSCK_ERR_##t = n,
298759bb4eaSKent Overstreet 	BCH_SB_ERRS()
299759bb4eaSKent Overstreet #undef x
300759bb4eaSKent Overstreet 	BCH_SB_ERR_MAX
301759bb4eaSKent Overstreet };
302759bb4eaSKent Overstreet 
303759bb4eaSKent Overstreet struct bch_sb_field_errors {
304759bb4eaSKent Overstreet 	struct bch_sb_field	field;
305759bb4eaSKent Overstreet 	struct bch_sb_field_error_entry {
306759bb4eaSKent Overstreet 		__le64		v;
307759bb4eaSKent Overstreet 		__le64		last_error_time;
308759bb4eaSKent Overstreet 	}			entries[];
309759bb4eaSKent Overstreet };
310759bb4eaSKent Overstreet 
311759bb4eaSKent Overstreet LE64_BITMASK(BCH_SB_ERROR_ENTRY_ID,	struct bch_sb_field_error_entry, v,  0, 16);
312759bb4eaSKent Overstreet LE64_BITMASK(BCH_SB_ERROR_ENTRY_NR,	struct bch_sb_field_error_entry, v, 16, 64);
313759bb4eaSKent Overstreet 
314759bb4eaSKent Overstreet #endif /* _BCACHEFS_SB_ERRORS_FORMAT_H */
315