Lines Matching defs:zio

35 #include <sys/zio.h>
286 vdev_raidz_map_free_vsd(zio_t *zio)
288 raidz_map_t *rm = zio->io_vsd;
389 vdev_raidz_cksum_report(zio_t *zio, zio_cksum_report_t *zcr, void *arg)
394 raidz_map_t *rm = zio->io_vsd;
411 * to copy the data aside; there's no guarantee that our zio's buffer
451 /* The zio's size in units of the vdev's minimum sector size. */
1689 vdev_raidz_child_done(zio_t *zio)
1691 raidz_col_t *rc = zio->io_private;
1693 rc->rc_error = zio->io_error;
1704 * 2. Create child zio write operations to each column's vdev, for both
1707 * write zio children for those areas to improve aggregation continuity.
1709 * 1. Create child zio read operations to each data column's vdev to read
1710 * the range of data required for zio.
1712 * vdevs have had errors, then create zio read operations to the parity
1716 vdev_raidz_io_start(zio_t *zio)
1718 vdev_t *vd = zio->io_vd;
1725 rm = vdev_raidz_map_alloc(zio->io_data, zio->io_size, zio->io_offset,
1729 zio->io_vsd = rm;
1730 zio->io_vsd_ops = &vdev_raidz_vsd_ops;
1732 ASSERT3U(rm->rm_asize, ==, vdev_psize_to_asize(vd, zio->io_size));
1734 if (zio->io_type == ZIO_TYPE_WRITE) {
1740 zio_nowait(zio_vdev_child_io(zio, NULL, cvd,
1742 zio->io_type, zio->io_priority, 0,
1756 zio_nowait(zio_vdev_child_io(zio, NULL, cvd,
1759 zio->io_type, zio->io_priority,
1763 zio_execute(zio);
1767 ASSERT(zio->io_type == ZIO_TYPE_READ);
1786 if (vdev_dtl_contains(cvd, DTL_MISSING, zio->io_txg, 1)) {
1796 (zio->io_flags & (ZIO_FLAG_SCRUB | ZIO_FLAG_RESILVER))) {
1797 zio_nowait(zio_vdev_child_io(zio, NULL, cvd,
1799 zio->io_type, zio->io_priority, 0,
1804 zio_execute(zio);
1812 raidz_checksum_error(zio_t *zio, raidz_col_t *rc, void *bad_data)
1814 vdev_t *vd = zio->io_vd->vdev_child[rc->rc_devidx];
1816 if (!(zio->io_flags & ZIO_FLAG_SPECULATIVE)) {
1818 raidz_map_t *rm = zio->io_vsd;
1827 zfs_ereport_post_checksum(zio->io_spa, vd, zio,
1838 raidz_checksum_verify(zio_t *zio)
1841 raidz_map_t *rm = zio->io_vsd;
1843 int ret = zio_checksum_error(zio, &zbc);
1857 raidz_parity_verify(zio_t *zio, raidz_map_t *rm)
1863 blkptr_t *bp = zio->io_bp;
1864 enum zio_checksum checksum = (bp == NULL ? zio->io_prop.zp_checksum :
1885 raidz_checksum_error(zio, rc, orig[c]);
1920 vdev_raidz_combrec(zio_t *zio, int total_errors, int data_errors)
1922 raidz_map_t *rm = zio->io_vsd;
2000 if (raidz_checksum_verify(zio) == 0) {
2008 raidz_checksum_error(zio, rc,
2089 vdev_raidz_io_done(zio_t *zio)
2091 vdev_t *vd = zio->io_vd;
2093 raidz_map_t *rm = zio->io_vsd;
2104 ASSERT(zio->io_bp != NULL); /* XXX need to add code to enforce this */
2129 if (zio->io_type == ZIO_TYPE_WRITE) {
2142 zio->io_error = vdev_raidz_worst_error(rm);
2147 ASSERT(zio->io_type == ZIO_TYPE_READ);
2167 if (raidz_checksum_verify(zio) == 0) {
2178 (zio->io_flags & ZIO_FLAG_RESILVER)) {
2179 n = raidz_parity_verify(zio, rm);
2213 if (raidz_checksum_verify(zio) == 0) {
2230 (zio->io_flags & ZIO_FLAG_RESILVER)) {
2231 n = raidz_parity_verify(zio, rm);
2257 zio_vdev_io_redone(zio);
2262 zio_nowait(zio_vdev_child_io(zio, NULL,
2265 zio->io_type, zio->io_priority, 0,
2283 zio->io_error = vdev_raidz_worst_error(rm);
2286 (code = vdev_raidz_combrec(zio, total_errors, data_errors)) != 0) {
2293 (void) raidz_parity_verify(zio, rm);
2307 zio->io_error = SET_ERROR(ECKSUM);
2309 if (!(zio->io_flags & ZIO_FLAG_SPECULATIVE)) {
2319 zio->io_spa,
2321 zio, rc->rc_offset, rc->rc_size,
2329 zio_checksum_verified(zio);
2331 if (zio->io_error == 0 && spa_writeable(zio->io_spa) &&
2332 (unexpected_errors || (zio->io_flags & ZIO_FLAG_RESILVER))) {
2343 zio_nowait(zio_vdev_child_io(zio, NULL, cvd,