Skip to content

Commit c387d84

Browse files
author
Kent Overstreet
committed
bcachefs: ec_validate_checksums() -> bch2_dev_tryget()
Signed-off-by: Kent Overstreet <[email protected]>
1 parent 8783856 commit c387d84

File tree

1 file changed

+12
-10
lines changed

1 file changed

+12
-10
lines changed

fs/bcachefs/ec.c

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -633,19 +633,21 @@ static void ec_validate_checksums(struct bch_fs *c, struct ec_stripe_buf *buf)
633633
struct bch_csum got = ec_block_checksum(buf, i, offset);
634634

635635
if (bch2_crc_cmp(want, got)) {
636-
struct printbuf err = PRINTBUF;
637-
struct bch_dev *ca = bch2_dev_bkey_exists(c, v->ptrs[i].dev);
636+
struct bch_dev *ca = bch2_dev_tryget(c, v->ptrs[i].dev);
637+
if (ca) {
638+
struct printbuf err = PRINTBUF;
638639

639-
prt_str(&err, "stripe ");
640-
bch2_csum_err_msg(&err, v->csum_type, want, got);
641-
prt_printf(&err, " for %ps at %u of\n ", (void *) _RET_IP_, i);
642-
bch2_bkey_val_to_text(&err, c, bkey_i_to_s_c(&buf->key));
643-
bch_err_ratelimited(ca, "%s", err.buf);
644-
printbuf_exit(&err);
640+
prt_str(&err, "stripe ");
641+
bch2_csum_err_msg(&err, v->csum_type, want, got);
642+
prt_printf(&err, " for %ps at %u of\n ", (void *) _RET_IP_, i);
643+
bch2_bkey_val_to_text(&err, c, bkey_i_to_s_c(&buf->key));
644+
bch_err_ratelimited(ca, "%s", err.buf);
645+
printbuf_exit(&err);
645646

646-
clear_bit(i, buf->valid);
647+
bch2_io_error(ca, BCH_MEMBER_ERROR_checksum);
648+
}
647649

648-
bch2_io_error(ca, BCH_MEMBER_ERROR_checksum);
650+
clear_bit(i, buf->valid);
649651
break;
650652
}
651653

0 commit comments

Comments
 (0)