diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2017-12-19 16:14:05 -0500 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@gmail.com> | 2018-05-22 00:44:18 -0400 |
commit | 89f8328672f7b097cf7768c44b770e0bacfb22f3 (patch) | |
tree | c8e52e0f2040889e6dc3991edbb58ce8ca02da00 | |
parent | a8edab4fcd103661112ac763280509d99f72f4ba (diff) |
bcachefs: don't ignore fsck errors by default
-rw-r--r-- | fs/bcachefs/error.c | 10 | ||||
-rw-r--r-- | fs/bcachefs/error.h | 7 |
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 { |