summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2017-12-19 16:14:05 -0500
committerKent Overstreet <kent.overstreet@gmail.com>2018-05-22 00:44:18 -0400
commit89f8328672f7b097cf7768c44b770e0bacfb22f3 (patch)
treec8e52e0f2040889e6dc3991edbb58ce8ca02da00
parenta8edab4fcd103661112ac763280509d99f72f4ba (diff)
bcachefs: don't ignore fsck errors by default
-rw-r--r--fs/bcachefs/error.c10
-rw-r--r--fs/bcachefs/error.h7
2 files changed, 12 insertions, 5 deletions
diff --git a/fs/bcachefs/error.c b/fs/bcachefs/error.c
index 8357c8de895d..ca2a06e2e4eb 100644
--- a/fs/bcachefs/error.c
+++ b/fs/bcachefs/error.c
@@ -95,11 +95,17 @@ print:
vscnprintf(buf, sizeof(_buf), fmt, args);
va_end(args);
+ if (c->opts.fix_errors == FSCK_OPT_EXIT) {
+ bch_err(c, "%s, exiting", buf);
+ mutex_unlock(&c->fsck_error_lock);
+ return FSCK_ERR_EXIT;
+ }
+
if (flags & FSCK_CAN_FIX) {
- if (c->opts.fix_errors == FSCK_ERR_ASK) {
+ if (c->opts.fix_errors == FSCK_OPT_ASK) {
printk(KERN_ERR "%s: fix?", buf);
fix = ask_yn();
- } else if (c->opts.fix_errors == FSCK_ERR_YES ||
+ } else if (c->opts.fix_errors == FSCK_OPT_YES ||
(c->opts.nochanges &&
!(flags & FSCK_CAN_IGNORE))) {
if (print)
diff --git a/fs/bcachefs/error.h b/fs/bcachefs/error.h
index 9b799f34d746..28fe4fceb93a 100644
--- a/fs/bcachefs/error.h
+++ b/fs/bcachefs/error.h
@@ -96,9 +96,10 @@ enum {
};
enum fsck_err_opts {
- FSCK_ERR_NO,
- FSCK_ERR_YES,
- FSCK_ERR_ASK,
+ FSCK_OPT_EXIT,
+ FSCK_OPT_YES,
+ FSCK_OPT_NO,
+ FSCK_OPT_ASK,
};
enum fsck_err_ret {