mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-26 04:16:39 +00:00
bcachefs: Suppresss various error messages in no_data_io mode
We commonly use no_data_io mode when debugging filesystem metadata dumps, where data checksum/compression errors are expected and unimportant - this patch suppresses these. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
parent
20e6d9a8d4
commit
970a5096ac
3 changed files with 10 additions and 6 deletions
|
@ -426,7 +426,7 @@ 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) && !c->opts.no_data_io) {
|
||||
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,
|
||||
|
|
|
@ -240,7 +240,8 @@ int bch2_bio_uncompress_inplace(struct bch_fs *c, struct bio *bio,
|
|||
data = __bounce_alloc(c, dst_len, WRITE);
|
||||
|
||||
if (__bio_uncompress(c, bio, data.b, *crc)) {
|
||||
bch_err(c, "error rewriting existing data: decompression error");
|
||||
if (!c->opts.no_data_io)
|
||||
bch_err(c, "error rewriting existing data: decompression error");
|
||||
bio_unmap_or_unbounce(c, data);
|
||||
return -EIO;
|
||||
}
|
||||
|
|
|
@ -1082,7 +1082,8 @@ static enum prep_encoded_ret {
|
|||
op->incompressible)) {
|
||||
if (!crc_is_compressed(op->crc) &&
|
||||
op->csum_type != op->crc.csum_type &&
|
||||
bch2_write_rechecksum(c, op, op->csum_type))
|
||||
bch2_write_rechecksum(c, op, op->csum_type) &&
|
||||
!c->opts.no_data_io)
|
||||
return PREP_ENCODED_CHECKSUM_ERR;
|
||||
|
||||
return PREP_ENCODED_DO_WRITE;
|
||||
|
@ -1102,7 +1103,7 @@ static enum prep_encoded_ret {
|
|||
csum = bch2_checksum_bio(c, op->crc.csum_type,
|
||||
extent_nonce(op->version, op->crc),
|
||||
bio);
|
||||
if (bch2_crc_cmp(op->crc.csum, csum))
|
||||
if (bch2_crc_cmp(op->crc.csum, csum) && !c->opts.no_data_io)
|
||||
return PREP_ENCODED_CHECKSUM_ERR;
|
||||
|
||||
if (bch2_bio_uncompress_inplace(c, bio, &op->crc))
|
||||
|
@ -1120,7 +1121,8 @@ static enum prep_encoded_ret {
|
|||
*/
|
||||
if ((op->crc.live_size != op->crc.uncompressed_size ||
|
||||
op->crc.csum_type != op->csum_type) &&
|
||||
bch2_write_rechecksum(c, op, op->csum_type))
|
||||
bch2_write_rechecksum(c, op, op->csum_type) &&
|
||||
!c->opts.no_data_io)
|
||||
return PREP_ENCODED_CHECKSUM_ERR;
|
||||
|
||||
/*
|
||||
|
@ -2416,7 +2418,8 @@ static void __bch2_read_endio(struct work_struct *work)
|
|||
if (ret)
|
||||
goto decrypt_err;
|
||||
|
||||
if (bch2_bio_uncompress(c, src, dst, dst_iter, crc))
|
||||
if (bch2_bio_uncompress(c, src, dst, dst_iter, crc) &&
|
||||
!c->opts.no_data_io)
|
||||
goto decompression_err;
|
||||
} else {
|
||||
/* don't need to decrypt the entire bio: */
|
||||
|
|
Loading…
Reference in a new issue