diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2019-11-09 22:49:03 -0500 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@gmail.com> | 2019-11-09 22:49:03 -0500 |
commit | 1f7098c22213bbe66896f390a529223468a3986e (patch) | |
tree | 4f791db0a1cd2bfa9c568b46ffed73ce641c8d57 /libbcachefs/error.c | |
parent | f597e81aab00d0f5174f104f967cbf20da7c51c7 (diff) |
Update bcachefs sources to b1a4dc53be bcachefs: Set lost+found mode to 0700
Diffstat (limited to 'libbcachefs/error.c')
-rw-r--r-- | libbcachefs/error.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/libbcachefs/error.c b/libbcachefs/error.c index 304ff925..5a5cfee6 100644 --- a/libbcachefs/error.c +++ b/libbcachefs/error.c @@ -64,7 +64,7 @@ void bch2_io_error(struct bch_dev *ca) enum fsck_err_ret bch2_fsck_err(struct bch_fs *c, unsigned flags, const char *fmt, ...) { - struct fsck_err_state *s; + struct fsck_err_state *s = NULL; va_list args; bool fix = false, print = true, suppressing = false; char _buf[sizeof(s->buf)], *buf = _buf; @@ -99,8 +99,13 @@ enum fsck_err_ret bch2_fsck_err(struct bch_fs *c, unsigned flags, found: list_move(&s->list, &c->fsck_errors); s->nr++; - suppressing = s->nr == FSCK_ERR_RATELIMIT_NR; - print = s->nr <= FSCK_ERR_RATELIMIT_NR; + if (c->opts.ratelimit_errors && + s->nr >= FSCK_ERR_RATELIMIT_NR) { + if (s->nr == FSCK_ERR_RATELIMIT_NR) + suppressing = true; + else + print = false; + } buf = s->buf; print: va_start(args, fmt); @@ -156,7 +161,7 @@ void bch2_flush_fsck_errs(struct bch_fs *c) mutex_lock(&c->fsck_error_lock); list_for_each_entry_safe(s, n, &c->fsck_errors, list) { - if (s->nr > FSCK_ERR_RATELIMIT_NR) + if (s->ratelimited) bch_err(c, "Saw %llu errors like:\n %s", s->nr, s->buf); list_del(&s->list); |