brintos

brintos / linux-shallow public Read only

0
0
Text · 13.1 KiB · 9c4fe5c Raw
311 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2#ifndef _BCACHEFS_ERRCODE_H3#define _BCACHEFS_ERRCODE_H4 5#define BCH_ERRCODES()								\6	x(ERANGE,			ERANGE_option_too_small)		\7	x(ERANGE,			ERANGE_option_too_big)			\8	x(EINVAL,			mount_option)				\9	x(BCH_ERR_mount_option,		option_name)				\10	x(BCH_ERR_mount_option,		option_value)				\11	x(BCH_ERR_mount_option,         option_not_bool)                        \12	x(ENOMEM,			ENOMEM_stripe_buf)			\13	x(ENOMEM,			ENOMEM_replicas_table)			\14	x(ENOMEM,			ENOMEM_cpu_replicas)			\15	x(ENOMEM,			ENOMEM_replicas_gc)			\16	x(ENOMEM,			ENOMEM_disk_groups_validate)		\17	x(ENOMEM,			ENOMEM_disk_groups_to_cpu)		\18	x(ENOMEM,			ENOMEM_mark_snapshot)			\19	x(ENOMEM,			ENOMEM_mark_stripe)			\20	x(ENOMEM,			ENOMEM_mark_stripe_ptr)			\21	x(ENOMEM,			ENOMEM_btree_key_cache_create)		\22	x(ENOMEM,			ENOMEM_btree_key_cache_fill)		\23	x(ENOMEM,			ENOMEM_btree_key_cache_insert)		\24	x(ENOMEM,			ENOMEM_trans_kmalloc)			\25	x(ENOMEM,			ENOMEM_trans_log_msg)			\26	x(ENOMEM,			ENOMEM_do_encrypt)			\27	x(ENOMEM,			ENOMEM_ec_read_extent)			\28	x(ENOMEM,			ENOMEM_ec_stripe_mem_alloc)		\29	x(ENOMEM,			ENOMEM_ec_new_stripe_alloc)		\30	x(ENOMEM,			ENOMEM_fs_btree_cache_init)		\31	x(ENOMEM,			ENOMEM_fs_btree_key_cache_init)		\32	x(ENOMEM,			ENOMEM_fs_counters_init)		\33	x(ENOMEM,			ENOMEM_fs_btree_write_buffer_init)	\34	x(ENOMEM,			ENOMEM_io_clock_init)			\35	x(ENOMEM,			ENOMEM_blacklist_table_init)		\36	x(ENOMEM,			ENOMEM_sb_realloc_injected)		\37	x(ENOMEM,			ENOMEM_sb_bio_realloc)			\38	x(ENOMEM,			ENOMEM_sb_buf_realloc)			\39	x(ENOMEM,			ENOMEM_sb_journal_validate)		\40	x(ENOMEM,			ENOMEM_sb_journal_v2_validate)		\41	x(ENOMEM,			ENOMEM_journal_entry_add)		\42	x(ENOMEM,			ENOMEM_journal_read_buf_realloc)	\43	x(ENOMEM,			ENOMEM_btree_interior_update_worker_init)\44	x(ENOMEM,			ENOMEM_btree_interior_update_pool_init)	\45	x(ENOMEM,			ENOMEM_bio_read_init)			\46	x(ENOMEM,			ENOMEM_bio_read_split_init)		\47	x(ENOMEM,			ENOMEM_bio_write_init)			\48	x(ENOMEM,			ENOMEM_bio_bounce_pages_init)		\49	x(ENOMEM,			ENOMEM_writepage_bioset_init)		\50	x(ENOMEM,			ENOMEM_dio_read_bioset_init)		\51	x(ENOMEM,			ENOMEM_dio_write_bioset_init)		\52	x(ENOMEM,			ENOMEM_nocow_flush_bioset_init)		\53	x(ENOMEM,			ENOMEM_promote_table_init)		\54	x(ENOMEM,			ENOMEM_compression_bounce_read_init)	\55	x(ENOMEM,			ENOMEM_compression_bounce_write_init)	\56	x(ENOMEM,			ENOMEM_compression_workspace_init)	\57	x(ENOMEM,			ENOMEM_decompression_workspace_init)	\58	x(ENOMEM,			ENOMEM_bucket_gens)			\59	x(ENOMEM,			ENOMEM_buckets_nouse)			\60	x(ENOMEM,			ENOMEM_usage_init)			\61	x(ENOMEM,			ENOMEM_btree_node_read_all_replicas)	\62	x(ENOMEM,			ENOMEM_btree_node_reclaim)		\63	x(ENOMEM,			ENOMEM_btree_node_mem_alloc)		\64	x(ENOMEM,			ENOMEM_btree_cache_cannibalize_lock)	\65	x(ENOMEM,			ENOMEM_buckets_waiting_for_journal_init)\66	x(ENOMEM,			ENOMEM_buckets_waiting_for_journal_set)	\67	x(ENOMEM,			ENOMEM_set_nr_journal_buckets)		\68	x(ENOMEM,			ENOMEM_dev_journal_init)		\69	x(ENOMEM,			ENOMEM_journal_pin_fifo)		\70	x(ENOMEM,			ENOMEM_journal_buf)			\71	x(ENOMEM,			ENOMEM_gc_start)			\72	x(ENOMEM,			ENOMEM_gc_alloc_start)			\73	x(ENOMEM,			ENOMEM_gc_reflink_start)		\74	x(ENOMEM,			ENOMEM_gc_gens)				\75	x(ENOMEM,			ENOMEM_gc_repair_key)			\76	x(ENOMEM,			ENOMEM_fsck_extent_ends_at)		\77	x(ENOMEM,			ENOMEM_fsck_add_nlink)			\78	x(ENOMEM,			ENOMEM_journal_key_insert)		\79	x(ENOMEM,			ENOMEM_journal_keys_sort)		\80	x(ENOMEM,			ENOMEM_read_superblock_clean)		\81	x(ENOMEM,			ENOMEM_fs_alloc)			\82	x(ENOMEM,			ENOMEM_fs_name_alloc)			\83	x(ENOMEM,			ENOMEM_fs_other_alloc)			\84	x(ENOMEM,			ENOMEM_dev_alloc)			\85	x(ENOMEM,			ENOMEM_disk_accounting)			\86	x(ENOMEM,			ENOMEM_stripe_head_alloc)		\87	x(ENOMEM,                       ENOMEM_journal_read_bucket)             \88	x(ENOSPC,			ENOSPC_disk_reservation)		\89	x(ENOSPC,			ENOSPC_bucket_alloc)			\90	x(ENOSPC,			ENOSPC_disk_label_add)			\91	x(ENOSPC,			ENOSPC_stripe_create)			\92	x(ENOSPC,			ENOSPC_inode_create)			\93	x(ENOSPC,			ENOSPC_str_hash_create)			\94	x(ENOSPC,			ENOSPC_snapshot_create)			\95	x(ENOSPC,			ENOSPC_subvolume_create)		\96	x(ENOSPC,			ENOSPC_sb)				\97	x(ENOSPC,			ENOSPC_sb_journal)			\98	x(ENOSPC,			ENOSPC_sb_journal_seq_blacklist)	\99	x(ENOSPC,			ENOSPC_sb_quota)			\100	x(ENOSPC,			ENOSPC_sb_replicas)			\101	x(ENOSPC,			ENOSPC_sb_members)			\102	x(ENOSPC,			ENOSPC_sb_members_v2)			\103	x(ENOSPC,			ENOSPC_sb_crypt)			\104	x(ENOSPC,			ENOSPC_sb_downgrade)			\105	x(ENOSPC,			ENOSPC_btree_slot)			\106	x(ENOSPC,			ENOSPC_snapshot_tree)			\107	x(ENOENT,			ENOENT_bkey_type_mismatch)		\108	x(ENOENT,			ENOENT_str_hash_lookup)			\109	x(ENOENT,			ENOENT_str_hash_set_must_replace)	\110	x(ENOENT,			ENOENT_inode)				\111	x(ENOENT,			ENOENT_not_subvol)			\112	x(ENOENT,			ENOENT_not_directory)			\113	x(ENOENT,			ENOENT_directory_dead)			\114	x(ENOENT,			ENOENT_subvolume)			\115	x(ENOENT,			ENOENT_snapshot_tree)			\116	x(ENOENT,			ENOENT_dirent_doesnt_match_inode)	\117	x(ENOENT,			ENOENT_dev_not_found)			\118	x(ENOENT,			ENOENT_dev_idx_not_found)		\119	x(ENOTEMPTY,			ENOTEMPTY_dir_not_empty)		\120	x(ENOTEMPTY,			ENOTEMPTY_subvol_not_empty)		\121	x(EEXIST,			EEXIST_str_hash_set)			\122	x(EEXIST,			EEXIST_discard_in_flight_add)		\123	x(EEXIST,			EEXIST_subvolume_create)		\124	x(ENOSPC,			open_buckets_empty)			\125	x(ENOSPC,			freelist_empty)				\126	x(BCH_ERR_freelist_empty,	no_buckets_found)			\127	x(0,				transaction_restart)			\128	x(BCH_ERR_transaction_restart,	transaction_restart_fault_inject)	\129	x(BCH_ERR_transaction_restart,	transaction_restart_relock)		\130	x(BCH_ERR_transaction_restart,	transaction_restart_relock_path)	\131	x(BCH_ERR_transaction_restart,	transaction_restart_relock_path_intent)	\132	x(BCH_ERR_transaction_restart,	transaction_restart_relock_after_fill)	\133	x(BCH_ERR_transaction_restart,	transaction_restart_too_many_iters)	\134	x(BCH_ERR_transaction_restart,	transaction_restart_lock_node_reused)	\135	x(BCH_ERR_transaction_restart,	transaction_restart_fill_relock)	\136	x(BCH_ERR_transaction_restart,	transaction_restart_fill_mem_alloc_fail)\137	x(BCH_ERR_transaction_restart,	transaction_restart_mem_realloced)	\138	x(BCH_ERR_transaction_restart,	transaction_restart_in_traverse_all)	\139	x(BCH_ERR_transaction_restart,	transaction_restart_would_deadlock)	\140	x(BCH_ERR_transaction_restart,	transaction_restart_would_deadlock_write)\141	x(BCH_ERR_transaction_restart,	transaction_restart_deadlock_recursion_limit)\142	x(BCH_ERR_transaction_restart,	transaction_restart_upgrade)		\143	x(BCH_ERR_transaction_restart,	transaction_restart_key_cache_upgrade)	\144	x(BCH_ERR_transaction_restart,	transaction_restart_key_cache_fill)	\145	x(BCH_ERR_transaction_restart,	transaction_restart_key_cache_raced)	\146	x(BCH_ERR_transaction_restart,	transaction_restart_key_cache_realloced)\147	x(BCH_ERR_transaction_restart,	transaction_restart_journal_preres_get)	\148	x(BCH_ERR_transaction_restart,	transaction_restart_split_race)		\149	x(BCH_ERR_transaction_restart,	transaction_restart_write_buffer_flush)	\150	x(BCH_ERR_transaction_restart,	transaction_restart_nested)		\151	x(0,				no_btree_node)				\152	x(BCH_ERR_no_btree_node,	no_btree_node_relock)			\153	x(BCH_ERR_no_btree_node,	no_btree_node_upgrade)			\154	x(BCH_ERR_no_btree_node,	no_btree_node_drop)			\155	x(BCH_ERR_no_btree_node,	no_btree_node_lock_root)		\156	x(BCH_ERR_no_btree_node,	no_btree_node_up)			\157	x(BCH_ERR_no_btree_node,	no_btree_node_down)			\158	x(BCH_ERR_no_btree_node,	no_btree_node_init)			\159	x(BCH_ERR_no_btree_node,	no_btree_node_cached)			\160	x(BCH_ERR_no_btree_node,	no_btree_node_srcu_reset)		\161	x(0,				btree_insert_fail)			\162	x(BCH_ERR_btree_insert_fail,	btree_insert_btree_node_full)		\163	x(BCH_ERR_btree_insert_fail,	btree_insert_need_mark_replicas)	\164	x(BCH_ERR_btree_insert_fail,	btree_insert_need_journal_res)		\165	x(BCH_ERR_btree_insert_fail,	btree_insert_need_journal_reclaim)	\166	x(0,				backpointer_to_overwritten_btree_node)	\167	x(0,				lock_fail_root_changed)			\168	x(0,				journal_reclaim_would_deadlock)		\169	x(EINVAL,			fsck)					\170	x(BCH_ERR_fsck,			fsck_fix)				\171	x(BCH_ERR_fsck,			fsck_delete_bkey)			\172	x(BCH_ERR_fsck,			fsck_ignore)				\173	x(BCH_ERR_fsck,			fsck_errors_not_fixed)			\174	x(BCH_ERR_fsck,			fsck_repair_unimplemented)		\175	x(BCH_ERR_fsck,			fsck_repair_impossible)			\176	x(0,				restart_recovery)			\177	x(0,				data_update_done)			\178	x(EINVAL,			device_state_not_allowed)		\179	x(EINVAL,			member_info_missing)			\180	x(EINVAL,			mismatched_block_size)			\181	x(EINVAL,			block_size_too_small)			\182	x(EINVAL,			bucket_size_too_small)			\183	x(EINVAL,			device_size_too_small)			\184	x(EINVAL,			device_size_too_big)			\185	x(EINVAL,			device_not_a_member_of_filesystem)	\186	x(EINVAL,			device_has_been_removed)		\187	x(EINVAL,			device_splitbrain)			\188	x(EINVAL,			device_already_online)			\189	x(EINVAL,			insufficient_devices_to_start)		\190	x(EINVAL,			invalid)				\191	x(EINVAL,			internal_fsck_err)			\192	x(EINVAL,			opt_parse_error)			\193	x(EINVAL,			remove_with_metadata_missing_unimplemented)\194	x(EINVAL,			remove_would_lose_data)			\195	x(EINVAL,			btree_iter_with_journal_not_supported)	\196	x(EROFS,			erofs_trans_commit)			\197	x(EROFS,			erofs_no_writes)			\198	x(EROFS,			erofs_journal_err)			\199	x(EROFS,			erofs_sb_err)				\200	x(EROFS,			erofs_unfixed_errors)			\201	x(EROFS,			erofs_norecovery)			\202	x(EROFS,			erofs_nochanges)			\203	x(EROFS,			insufficient_devices)			\204	x(0,				operation_blocked)			\205	x(BCH_ERR_operation_blocked,	btree_cache_cannibalize_lock_blocked)	\206	x(BCH_ERR_operation_blocked,	journal_res_get_blocked)		\207	x(BCH_ERR_operation_blocked,	journal_preres_get_blocked)		\208	x(BCH_ERR_operation_blocked,	bucket_alloc_blocked)			\209	x(BCH_ERR_operation_blocked,	stripe_alloc_blocked)			\210	x(BCH_ERR_invalid,		invalid_sb)				\211	x(BCH_ERR_invalid_sb,		invalid_sb_magic)			\212	x(BCH_ERR_invalid_sb,		invalid_sb_version)			\213	x(BCH_ERR_invalid_sb,		invalid_sb_features)			\214	x(BCH_ERR_invalid_sb,		invalid_sb_too_big)			\215	x(BCH_ERR_invalid_sb,		invalid_sb_csum_type)			\216	x(BCH_ERR_invalid_sb,		invalid_sb_csum)			\217	x(BCH_ERR_invalid_sb,		invalid_sb_block_size)			\218	x(BCH_ERR_invalid_sb,		invalid_sb_uuid)			\219	x(BCH_ERR_invalid_sb,		invalid_sb_too_many_members)		\220	x(BCH_ERR_invalid_sb,		invalid_sb_dev_idx)			\221	x(BCH_ERR_invalid_sb,		invalid_sb_time_precision)		\222	x(BCH_ERR_invalid_sb,		invalid_sb_field_size)			\223	x(BCH_ERR_invalid_sb,		invalid_sb_layout)			\224	x(BCH_ERR_invalid_sb_layout,	invalid_sb_layout_type)			\225	x(BCH_ERR_invalid_sb_layout,	invalid_sb_layout_nr_superblocks)	\226	x(BCH_ERR_invalid_sb_layout,	invalid_sb_layout_superblocks_overlap)	\227	x(BCH_ERR_invalid_sb_layout,    invalid_sb_layout_sb_max_size_bits)     \228	x(BCH_ERR_invalid_sb,		invalid_sb_members_missing)		\229	x(BCH_ERR_invalid_sb,		invalid_sb_members)			\230	x(BCH_ERR_invalid_sb,		invalid_sb_disk_groups)			\231	x(BCH_ERR_invalid_sb,		invalid_sb_replicas)			\232	x(BCH_ERR_invalid_sb,		invalid_replicas_entry)			\233	x(BCH_ERR_invalid_sb,		invalid_sb_journal)			\234	x(BCH_ERR_invalid_sb,		invalid_sb_journal_seq_blacklist)	\235	x(BCH_ERR_invalid_sb,		invalid_sb_crypt)			\236	x(BCH_ERR_invalid_sb,		invalid_sb_clean)			\237	x(BCH_ERR_invalid_sb,		invalid_sb_quota)			\238	x(BCH_ERR_invalid_sb,		invalid_sb_errors)			\239	x(BCH_ERR_invalid_sb,		invalid_sb_opt_compression)		\240	x(BCH_ERR_invalid_sb,		invalid_sb_ext)				\241	x(BCH_ERR_invalid_sb,		invalid_sb_downgrade)			\242	x(BCH_ERR_invalid,		invalid_bkey)				\243	x(BCH_ERR_operation_blocked,    nocow_lock_blocked)			\244	x(EIO,				btree_node_read_err)			\245	x(EIO,				sb_not_downgraded)			\246	x(EIO,				btree_node_write_all_failed)		\247	x(EIO,				btree_node_read_error)			\248	x(EIO,				btree_node_read_validate_error)		\249	x(EIO,				btree_need_topology_repair)		\250	x(EIO,				bucket_ref_update)			\251	x(EIO,				trigger_pointer)			\252	x(EIO,				trigger_stripe_pointer)			\253	x(EIO,				metadata_bucket_inconsistency)		\254	x(EIO,				mark_stripe)				\255	x(EIO,				stripe_reconstruct)			\256	x(EIO,				key_type_error)				\257	x(EIO,				no_device_to_read_from)			\258	x(EIO,				missing_indirect_extent)		\259	x(EIO,				invalidate_stripe_to_dev)		\260	x(BCH_ERR_btree_node_read_err,	btree_node_read_err_fixable)		\261	x(BCH_ERR_btree_node_read_err,	btree_node_read_err_want_retry)		\262	x(BCH_ERR_btree_node_read_err,	btree_node_read_err_must_retry)		\263	x(BCH_ERR_btree_node_read_err,	btree_node_read_err_bad_node)		\264	x(BCH_ERR_btree_node_read_err,	btree_node_read_err_incompatible)	\265	x(0,				nopromote)				\266	x(BCH_ERR_nopromote,		nopromote_may_not)			\267	x(BCH_ERR_nopromote,		nopromote_already_promoted)		\268	x(BCH_ERR_nopromote,		nopromote_unwritten)			\269	x(BCH_ERR_nopromote,		nopromote_congested)			\270	x(BCH_ERR_nopromote,		nopromote_in_flight)			\271	x(BCH_ERR_nopromote,		nopromote_no_writes)			\272	x(BCH_ERR_nopromote,		nopromote_enomem)			\273	x(0,				invalid_snapshot_node)			\274	x(0,				option_needs_open_fs)			\275	x(0,				remove_disk_accounting_entry)276 277enum bch_errcode {278	BCH_ERR_START		= 2048,279#define x(class, err) BCH_ERR_##err,280	BCH_ERRCODES()281#undef x282	BCH_ERR_MAX283};284 285const char *bch2_err_str(int);286bool __bch2_err_matches(int, int);287 288static inline bool _bch2_err_matches(int err, int class)289{290	return err < 0 && __bch2_err_matches(err, class);291}292 293#define bch2_err_matches(_err, _class)			\294({							\295	BUILD_BUG_ON(!__builtin_constant_p(_class));	\296	unlikely(_bch2_err_matches(_err, _class));	\297})298 299int __bch2_err_class(int);300 301static inline long bch2_err_class(long err)302{303	return err < 0 ? __bch2_err_class(err) : err;304}305 306#define BLK_STS_REMOVED		((__force blk_status_t)128)307 308const char *bch2_blk_status_to_str(blk_status_t);309 310#endif /* _BCACHFES_ERRCODE_H */311