Bump checksum error counter before reporting to ZED
The checksum error counter is incremented after reporting to ZED. This leads ZED to receiving a checksum error report with 0 checksum errors. To avoid this, bump the checksum error counter before reporting to ZED. Sponsored-by: Seagate Technology LLC Reviewed-by: Richard Yao <richard.yao@alumni.stonybrook.edu> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Rob Wing <rob.wing@klarasystems.com> Closes #14190
This commit is contained in:
parent
db6ba8d744
commit
7a75f74cec
|
@ -1479,12 +1479,12 @@ vdev_indirect_all_checksum_errors(zio_t *zio)
|
||||||
|
|
||||||
vdev_t *vd = ic->ic_vdev;
|
vdev_t *vd = ic->ic_vdev;
|
||||||
|
|
||||||
(void) zfs_ereport_post_checksum(zio->io_spa, vd,
|
|
||||||
NULL, zio, is->is_target_offset, is->is_size,
|
|
||||||
NULL, NULL, NULL);
|
|
||||||
mutex_enter(&vd->vdev_stat_lock);
|
mutex_enter(&vd->vdev_stat_lock);
|
||||||
vd->vdev_stat.vs_checksum_errors++;
|
vd->vdev_stat.vs_checksum_errors++;
|
||||||
mutex_exit(&vd->vdev_stat_lock);
|
mutex_exit(&vd->vdev_stat_lock);
|
||||||
|
(void) zfs_ereport_post_checksum(zio->io_spa, vd,
|
||||||
|
NULL, zio, is->is_target_offset, is->is_size,
|
||||||
|
NULL, NULL, NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1769,12 +1769,12 @@ vdev_raidz_checksum_error(zio_t *zio, raidz_col_t *rc, abd_t *bad_data)
|
||||||
zbc.zbc_has_cksum = 0;
|
zbc.zbc_has_cksum = 0;
|
||||||
zbc.zbc_injected = rm->rm_ecksuminjected;
|
zbc.zbc_injected = rm->rm_ecksuminjected;
|
||||||
|
|
||||||
(void) zfs_ereport_post_checksum(zio->io_spa, vd,
|
|
||||||
&zio->io_bookmark, zio, rc->rc_offset, rc->rc_size,
|
|
||||||
rc->rc_abd, bad_data, &zbc);
|
|
||||||
mutex_enter(&vd->vdev_stat_lock);
|
mutex_enter(&vd->vdev_stat_lock);
|
||||||
vd->vdev_stat.vs_checksum_errors++;
|
vd->vdev_stat.vs_checksum_errors++;
|
||||||
mutex_exit(&vd->vdev_stat_lock);
|
mutex_exit(&vd->vdev_stat_lock);
|
||||||
|
(void) zfs_ereport_post_checksum(zio->io_spa, vd,
|
||||||
|
&zio->io_bookmark, zio, rc->rc_offset, rc->rc_size,
|
||||||
|
rc->rc_abd, bad_data, &zbc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2380,12 +2380,12 @@ vdev_raidz_io_done_unrecoverable(zio_t *zio)
|
||||||
zbc.zbc_has_cksum = 0;
|
zbc.zbc_has_cksum = 0;
|
||||||
zbc.zbc_injected = rm->rm_ecksuminjected;
|
zbc.zbc_injected = rm->rm_ecksuminjected;
|
||||||
|
|
||||||
(void) zfs_ereport_start_checksum(zio->io_spa,
|
|
||||||
cvd, &zio->io_bookmark, zio, rc->rc_offset,
|
|
||||||
rc->rc_size, &zbc);
|
|
||||||
mutex_enter(&cvd->vdev_stat_lock);
|
mutex_enter(&cvd->vdev_stat_lock);
|
||||||
cvd->vdev_stat.vs_checksum_errors++;
|
cvd->vdev_stat.vs_checksum_errors++;
|
||||||
mutex_exit(&cvd->vdev_stat_lock);
|
mutex_exit(&cvd->vdev_stat_lock);
|
||||||
|
(void) zfs_ereport_start_checksum(zio->io_spa,
|
||||||
|
cvd, &zio->io_bookmark, zio, rc->rc_offset,
|
||||||
|
rc->rc_size, &zbc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4311,12 +4311,12 @@ zio_checksum_verify(zio_t *zio)
|
||||||
zio->io_error = error;
|
zio->io_error = error;
|
||||||
if (error == ECKSUM &&
|
if (error == ECKSUM &&
|
||||||
!(zio->io_flags & ZIO_FLAG_SPECULATIVE)) {
|
!(zio->io_flags & ZIO_FLAG_SPECULATIVE)) {
|
||||||
(void) zfs_ereport_start_checksum(zio->io_spa,
|
|
||||||
zio->io_vd, &zio->io_bookmark, zio,
|
|
||||||
zio->io_offset, zio->io_size, &info);
|
|
||||||
mutex_enter(&zio->io_vd->vdev_stat_lock);
|
mutex_enter(&zio->io_vd->vdev_stat_lock);
|
||||||
zio->io_vd->vdev_stat.vs_checksum_errors++;
|
zio->io_vd->vdev_stat.vs_checksum_errors++;
|
||||||
mutex_exit(&zio->io_vd->vdev_stat_lock);
|
mutex_exit(&zio->io_vd->vdev_stat_lock);
|
||||||
|
(void) zfs_ereport_start_checksum(zio->io_spa,
|
||||||
|
zio->io_vd, &zio->io_bookmark, zio,
|
||||||
|
zio->io_offset, zio->io_size, &info);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue