summaryrefslogtreecommitdiff
path: root/fs/bcachefs/error.c
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2017-12-03 20:29:09 -0500
committerKent Overstreet <kent.overstreet@gmail.com>2018-02-18 21:14:59 -0500
commitb28b848e8b8041908525b1ff837f0fc274633cb1 (patch)
tree207f118ef1a5974c15b3af02477fde5ffb16c89b /fs/bcachefs/error.c
parent640c2782d855d237bfe3df5443f0e611d4ae1fee (diff)
error handlingbcachefs_disk_groups
Diffstat (limited to 'fs/bcachefs/error.c')
-rw-r--r--fs/bcachefs/error.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/fs/bcachefs/error.c b/fs/bcachefs/error.c
index ca2a06e2e4eb..d75e1ef9a675 100644
--- a/fs/bcachefs/error.c
+++ b/fs/bcachefs/error.c
@@ -3,6 +3,22 @@
#include "io.h"
#include "super.h"
+void __bch2_fs_bug(struct bch_fs *c)
+{
+ set_bit(BCH_FS_ERROR, &c->flags);
+
+ switch (c->opts.errors) {
+ case BCH_ON_ERROR_CONTINUE:
+ case BCH_ON_ERROR_RO:
+ if (bch2_fs_emergency_read_only(c))
+ bch_err(c, "emergency read only");
+ break;
+ case BCH_ON_ERROR_PANIC:
+ panic(bch2_fmt(c, "panic after error"));
+ break;
+ }
+}
+
void bch2_inconsistent_error(struct bch_fs *c)
{
set_bit(BCH_FS_ERROR, &c->flags);