#ifndef _BCACHEFS_ERROR_H
#define _BCACHEFS_ERROR_H
#include <linux/list.h>
#include <linux/printk.h>
#include "sb-errors.h"
struct bch_dev;
struct bch_fs;
struct work_struct;
bool bch2_inconsistent_error(struct bch_fs *);
int bch2_topology_error(struct bch_fs *);
#define bch2_fs_topology_error(c, ...) …
#define bch2_fs_inconsistent(c, ...) …
#define bch2_fs_inconsistent_on(cond, c, ...) …
#define bch2_dev_inconsistent(ca, ...) …
#define bch2_dev_inconsistent_on(cond, ca, ...) …
#define bch2_trans_inconsistent(trans, ...) …
#define bch2_trans_inconsistent_on(cond, trans, ...) …
struct fsck_err_state { … };
#define fsck_err_count(_c, _err) …
__printf(5, 6) __cold
int __bch2_fsck_err(struct bch_fs *, struct btree_trans *,
enum bch_fsck_flags,
enum bch_sb_error_id,
const char *, ...);
#define bch2_fsck_err(c, _flags, _err_type, ...) …
void bch2_flush_fsck_errs(struct bch_fs *);
#define __fsck_err(c, _flags, _err_type, ...) …
#define __fsck_err_on(cond, c, _flags, _err_type, ...) …
#define need_fsck_err_on(cond, c, _err_type, ...) …
#define need_fsck_err(c, _err_type, ...) …
#define mustfix_fsck_err(c, _err_type, ...) …
#define mustfix_fsck_err_on(cond, c, _err_type, ...) …
#define fsck_err(c, _err_type, ...) …
#define fsck_err_on(cond, c, _err_type, ...) …
__printf(4, 0)
static inline void bch2_bkey_fsck_err(struct bch_fs *c,
struct printbuf *err_msg,
enum bch_sb_error_id err_type,
const char *fmt, ...)
{ … }
#define bkey_fsck_err(c, _err_msg, _err_type, ...) …
#define bkey_fsck_err_on(cond, ...) …
void bch2_fatal_error(struct bch_fs *);
#define bch2_fs_fatal_error(c, _msg, ...) …
#define bch2_fs_fatal_err_on(cond, c, ...) …
void bch2_io_error_work(struct work_struct *);
void bch2_io_error(struct bch_dev *, enum bch_member_error_type);
#define bch2_dev_io_err_on(cond, ca, _type, ...) …
#define bch2_dev_inum_io_err_on(cond, ca, _type, ...) …
#endif