diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2022-06-18 19:03:25 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2023-10-22 17:09:34 -0400 |
commit | 23189da9eb6b34fc1ceb077edb32e308d0ad6760 (patch) | |
tree | 3d1b87e0b6cb4f8e3f5f7d3878055a577c8085f5 /fs/bcachefs/checksum.c | |
parent | 50b13beef09f445e1fb8fbf1e1f852df06baf05a (diff) | |
download | linux-23189da9eb6b34fc1ceb077edb32e308d0ad6760.tar.gz linux-23189da9eb6b34fc1ceb077edb32e308d0ad6760.tar.bz2 linux-23189da9eb6b34fc1ceb077edb32e308d0ad6760.zip |
bcachefs: Improve checksum error messages
We're seeing checksum errors in the bch2_rechecksum_bio() path - give it
a better error message to help track this down.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Diffstat (limited to 'fs/bcachefs/checksum.c')
-rw-r--r-- | fs/bcachefs/checksum.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/fs/bcachefs/checksum.c b/fs/bcachefs/checksum.c index e23b221cd377..7c2af6754aea 100644 --- a/fs/bcachefs/checksum.c +++ b/fs/bcachefs/checksum.c @@ -425,8 +425,17 @@ int bch2_rechecksum_bio(struct bch_fs *c, struct bio *bio, merged = bch2_checksum_bio(c, crc_old.csum_type, extent_nonce(version, crc_old), bio); - if (bch2_crc_cmp(merged, crc_old.csum)) + if (bch2_crc_cmp(merged, crc_old.csum)) { + bch_err(c, "checksum error in bch2_rechecksum_bio() (memory corruption or bug?)\n" + "expected %0llx:%0llx got %0llx:%0llx (old type %s new type %s)", + crc_old.csum.hi, + crc_old.csum.lo, + merged.hi, + merged.lo, + bch2_csum_types[crc_old.csum_type], + bch2_csum_types[new_csum_type]); return -EIO; + } for (i = splits; i < splits + ARRAY_SIZE(splits); i++) { if (i->crc) |