1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _BCACHEFS_ERRCODE_H
3 #define _BCACHEFS_ERRCODE_H
5 #define BCH_ERRCODES() \
6 x(0, open_buckets_empty) \
8 x(freelist_empty, no_buckets_found) \
9 x(0, insufficient_devices) \
10 x(0, transaction_restart) \
11 x(transaction_restart, transaction_restart_fault_inject) \
12 x(transaction_restart, transaction_restart_relock) \
13 x(transaction_restart, transaction_restart_relock_path) \
14 x(transaction_restart, transaction_restart_relock_path_intent) \
15 x(transaction_restart, transaction_restart_relock_after_fill) \
16 x(transaction_restart, transaction_restart_too_many_iters) \
17 x(transaction_restart, transaction_restart_lock_node_reused) \
18 x(transaction_restart, transaction_restart_fill_relock) \
19 x(transaction_restart, transaction_restart_fill_mem_alloc_fail)\
20 x(transaction_restart, transaction_restart_mem_realloced) \
21 x(transaction_restart, transaction_restart_in_traverse_all) \
22 x(transaction_restart, transaction_restart_would_deadlock) \
23 x(transaction_restart, transaction_restart_would_deadlock_write)\
24 x(transaction_restart, transaction_restart_upgrade) \
25 x(transaction_restart, transaction_restart_key_cache_upgrade) \
26 x(transaction_restart, transaction_restart_key_cache_fill) \
27 x(transaction_restart, transaction_restart_key_cache_raced) \
28 x(transaction_restart, transaction_restart_key_cache_realloced)\
29 x(transaction_restart, transaction_restart_journal_preres_get) \
30 x(transaction_restart, transaction_restart_nested) \
32 x(no_btree_node, no_btree_node_relock) \
33 x(no_btree_node, no_btree_node_upgrade) \
34 x(no_btree_node, no_btree_node_drop) \
35 x(no_btree_node, no_btree_node_lock_root) \
36 x(no_btree_node, no_btree_node_up) \
37 x(no_btree_node, no_btree_node_down) \
38 x(no_btree_node, no_btree_node_init) \
39 x(no_btree_node, no_btree_node_cached) \
40 x(0, lock_fail_node_reused) \
41 x(0, lock_fail_root_changed) \
42 x(0, journal_reclaim_would_deadlock) \
45 x(fsck, fsck_ignore) \
46 x(fsck, fsck_errors_not_fixed) \
47 x(fsck, fsck_repair_unimplemented) \
48 x(fsck, fsck_repair_impossible) \
49 x(0, need_snapshot_cleanup) \
50 x(0, need_topology_repair)
54 #define x(class, err) BCH_ERR_##err,
60 const char *bch2_err_str(int);
61 bool __bch2_err_matches(int, int);
63 static inline bool _bch2_err_matches(int err, int class)
65 return err && __bch2_err_matches(err, class);
68 #define bch2_err_matches(_err, _class) \
70 BUILD_BUG_ON(!__builtin_constant_p(_class)); \
71 _bch2_err_matches(_err, _class); \
74 #endif /* _BCACHFES_ERRCODE_H */