mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-11-01 17:08:10 +00:00
bcachefs: Ratelimit checksum error messages
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
parent
0f3372dcee
commit
5e3c208325
2 changed files with 7 additions and 3 deletions
|
@ -10,6 +10,7 @@
|
||||||
#include <linux/xxhash.h>
|
#include <linux/xxhash.h>
|
||||||
#include <linux/key.h>
|
#include <linux/key.h>
|
||||||
#include <linux/random.h>
|
#include <linux/random.h>
|
||||||
|
#include <linux/ratelimit.h>
|
||||||
#include <linux/scatterlist.h>
|
#include <linux/scatterlist.h>
|
||||||
#include <crypto/algapi.h>
|
#include <crypto/algapi.h>
|
||||||
#include <crypto/chacha.h>
|
#include <crypto/chacha.h>
|
||||||
|
@ -436,7 +437,7 @@ int bch2_rechecksum_bio(struct bch_fs *c, struct bio *bio,
|
||||||
if (bch2_crc_cmp(merged, crc_old.csum) && !c->opts.no_data_io) {
|
if (bch2_crc_cmp(merged, crc_old.csum) && !c->opts.no_data_io) {
|
||||||
struct printbuf buf = PRINTBUF;
|
struct printbuf buf = PRINTBUF;
|
||||||
prt_printf(&buf, "checksum error in %s() (memory corruption or bug?)\n"
|
prt_printf(&buf, "checksum error in %s() (memory corruption or bug?)\n"
|
||||||
"expected %0llx:%0llx got %0llx:%0llx (old type ",
|
" expected %0llx:%0llx got %0llx:%0llx (old type ",
|
||||||
__func__,
|
__func__,
|
||||||
crc_old.csum.hi,
|
crc_old.csum.hi,
|
||||||
crc_old.csum.lo,
|
crc_old.csum.lo,
|
||||||
|
@ -446,7 +447,7 @@ int bch2_rechecksum_bio(struct bch_fs *c, struct bio *bio,
|
||||||
prt_str(&buf, " new type ");
|
prt_str(&buf, " new type ");
|
||||||
bch2_prt_csum_type(&buf, new_csum_type);
|
bch2_prt_csum_type(&buf, new_csum_type);
|
||||||
prt_str(&buf, ")");
|
prt_str(&buf, ")");
|
||||||
bch_err(c, "%s", buf.buf);
|
WARN_RATELIMIT(1, "%s", buf.buf);
|
||||||
printbuf_exit(&buf);
|
printbuf_exit(&buf);
|
||||||
return -EIO;
|
return -EIO;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1080,7 +1080,10 @@ static int bch2_write_extent(struct bch_write_op *op, struct write_point *wp,
|
||||||
*_dst = dst;
|
*_dst = dst;
|
||||||
return more;
|
return more;
|
||||||
csum_err:
|
csum_err:
|
||||||
bch_err(c, "%s write error: error verifying existing checksum while rewriting existing data (memory corruption?)",
|
bch_err_inum_offset_ratelimited(c,
|
||||||
|
op->pos.inode,
|
||||||
|
op->pos.offset << 9,
|
||||||
|
"%s write error: error verifying existing checksum while rewriting existing data (memory corruption?)",
|
||||||
op->flags & BCH_WRITE_MOVE ? "move" : "user");
|
op->flags & BCH_WRITE_MOVE ? "move" : "user");
|
||||||
ret = -EIO;
|
ret = -EIO;
|
||||||
err:
|
err:
|
||||||
|
|
Loading…
Reference in a new issue