Commit 6543f562 authored by Kent Overstreet's avatar Kent Overstreet Committed by Kent Overstreet

bcachefs: Handle fsck errors at runtime better

Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
parent 05b3d5ac
...@@ -67,10 +67,20 @@ enum fsck_err_ret bch2_fsck_err(struct bch_fs *c, unsigned flags, ...@@ -67,10 +67,20 @@ enum fsck_err_ret bch2_fsck_err(struct bch_fs *c, unsigned flags,
bool fix = false, print = true, suppressing = false; bool fix = false, print = true, suppressing = false;
char _buf[sizeof(s->buf)], *buf = _buf; char _buf[sizeof(s->buf)], *buf = _buf;
mutex_lock(&c->fsck_error_lock); if (test_bit(BCH_FS_FSCK_DONE, &c->flags)) {
va_start(args, fmt);
vprintk(fmt, args);
va_end(args);
if (test_bit(BCH_FS_FSCK_DONE, &c->flags)) if (c->opts.errors == BCH_ON_ERROR_CONTINUE &&
goto print; flags & FSCK_CAN_FIX)
return FSCK_ERR_FIX;
bch2_inconsistent_error(c);
return FSCK_ERR_EXIT;
}
mutex_lock(&c->fsck_error_lock);
list_for_each_entry(s, &c->fsck_errors, list) list_for_each_entry(s, &c->fsck_errors, list)
if (s->fmt == fmt) if (s->fmt == fmt)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment