Lines Matching refs:zio
649 vdev_draid_map_alloc_write(zio_t *zio, uint64_t abd_offset, raidz_row_t *rr) in vdev_draid_map_alloc_write() argument
651 uint64_t skip_size = 1ULL << zio->io_vd->vdev_top->vdev_ashift; in vdev_draid_map_alloc_write()
655 ASSERT3U(zio->io_type, ==, ZIO_TYPE_WRITE); in vdev_draid_map_alloc_write()
668 zio->io_abd, abd_off, rc->rc_size); in vdev_draid_map_alloc_write()
674 zio->io_abd, abd_off, rc->rc_size), B_TRUE); in vdev_draid_map_alloc_write()
685 IMPLY(abd_offset != 0, abd_off == zio->io_size); in vdev_draid_map_alloc_write()
696 vdev_draid_map_alloc_scrub(zio_t *zio, uint64_t abd_offset, raidz_row_t *rr) in vdev_draid_map_alloc_scrub() argument
698 uint64_t skip_size = 1ULL << zio->io_vd->vdev_top->vdev_ashift; in vdev_draid_map_alloc_scrub()
703 ASSERT3U(zio->io_type, ==, ZIO_TYPE_READ); in vdev_draid_map_alloc_scrub()
724 zio->io_abd, abd_off, rc->rc_size); in vdev_draid_map_alloc_scrub()
731 zio->io_abd, abd_off, rc->rc_size), B_TRUE); in vdev_draid_map_alloc_scrub()
748 IMPLY(abd_offset != 0, abd_off == zio->io_size); in vdev_draid_map_alloc_scrub()
761 vdev_draid_map_alloc_read(zio_t *zio, uint64_t abd_offset, raidz_row_t *rr) in vdev_draid_map_alloc_read() argument
765 ASSERT3U(zio->io_type, ==, ZIO_TYPE_READ); in vdev_draid_map_alloc_read()
772 zio->io_abd, abd_off, rc->rc_size); in vdev_draid_map_alloc_read()
777 IMPLY(abd_offset != 0, abd_off == zio->io_size); in vdev_draid_map_alloc_read()
786 vdev_draid_map_alloc_empty(zio_t *zio, raidz_row_t *rr) in vdev_draid_map_alloc_empty() argument
788 uint64_t skip_size = 1ULL << zio->io_vd->vdev_top->vdev_ashift; in vdev_draid_map_alloc_empty()
792 ASSERT3U(zio->io_type, ==, ZIO_TYPE_READ); in vdev_draid_map_alloc_empty()
853 vdev_draid_map_verify_empty(zio_t *zio, raidz_row_t *rr) in vdev_draid_map_verify_empty() argument
855 uint64_t skip_size = 1ULL << zio->io_vd->vdev_top->vdev_ashift; in vdev_draid_map_verify_empty()
861 ASSERT3U(zio->io_type, ==, ZIO_TYPE_READ); in vdev_draid_map_verify_empty()
875 vdev_raidz_checksum_error(zio, rc, rc->rc_abd); in vdev_draid_map_verify_empty()
956 vdev_draid_map_alloc_row(zio_t *zio, raidz_row_t **rrp, uint64_t io_offset, in vdev_draid_map_alloc_row() argument
959 vdev_t *vd = zio->io_vd; in vdev_draid_map_alloc_row()
982 IMPLY(abd_offset == 0 && io_size < zio->io_size, in vdev_draid_map_alloc_row()
1090 if (zio->io_type == ZIO_TYPE_WRITE) { in vdev_draid_map_alloc_row()
1091 vdev_draid_map_alloc_write(zio, abd_offset, rr); in vdev_draid_map_alloc_row()
1093 (zio->io_flags & (ZIO_FLAG_SCRUB | ZIO_FLAG_RESILVER))) { in vdev_draid_map_alloc_row()
1094 vdev_draid_map_alloc_scrub(zio, abd_offset, rr); in vdev_draid_map_alloc_row()
1096 ASSERT3U(zio->io_type, ==, ZIO_TYPE_READ); in vdev_draid_map_alloc_row()
1097 vdev_draid_map_alloc_read(zio, abd_offset, rr); in vdev_draid_map_alloc_row()
1118 vdev_draid_map_alloc(zio_t *zio) in vdev_draid_map_alloc() argument
1122 uint64_t abd_size = zio->io_size; in vdev_draid_map_alloc()
1123 uint64_t io_offset = zio->io_offset; in vdev_draid_map_alloc()
1127 size = vdev_draid_map_alloc_row(zio, &rr[0], io_offset, in vdev_draid_map_alloc()
1130 vdev_t *vd = zio->io_vd; in vdev_draid_map_alloc()
1139 ASSERT3U(abd_offset, <, zio->io_size); in vdev_draid_map_alloc()
1142 size = vdev_draid_map_alloc_row(zio, &rr[1], in vdev_draid_map_alloc()
1864 vdev_draid_io_start_write(zio_t *zio, raidz_row_t *rr) in vdev_draid_io_start_write() argument
1866 vdev_t *vd = zio->io_vd; in vdev_draid_io_start_write()
1867 raidz_map_t *rm = zio->io_vsd; in vdev_draid_io_start_write()
1883 zio_nowait(zio_vdev_child_io(zio, NULL, in vdev_draid_io_start_write()
1885 rc->rc_abd, rc->rc_size, zio->io_type, zio->io_priority, in vdev_draid_io_start_write()
1899 vdev_draid_io_start_read(zio_t *zio, raidz_row_t *rr) in vdev_draid_io_start_read() argument
1901 vdev_t *vd = zio->io_vd; in vdev_draid_io_start_read()
1904 IMPLY(zio->io_priority == ZIO_PRIORITY_REBUILD, rr->rr_nempty == 0); in vdev_draid_io_start_read()
1927 if (vdev_draid_missing(cvd, rc->rc_offset, zio->io_txg, 1)) { in vdev_draid_io_start_read()
1947 if (zio->io_flags & ZIO_FLAG_RESILVER) { in vdev_draid_io_start_read()
1963 if (zio->io_priority == ZIO_PRIORITY_REBUILD) { in vdev_draid_io_start_read()
2021 vdev_draid_map_alloc_empty(zio, rr); in vdev_draid_io_start_read()
2032 (zio->io_flags & (ZIO_FLAG_SCRUB | ZIO_FLAG_RESILVER))) { in vdev_draid_io_start_read()
2033 zio_nowait(zio_vdev_child_io(zio, NULL, cvd, in vdev_draid_io_start_read()
2035 zio->io_type, zio->io_priority, 0, in vdev_draid_io_start_read()
2045 vdev_draid_io_start(zio_t *zio) in vdev_draid_io_start() argument
2047 vdev_t *vd __maybe_unused = zio->io_vd; in vdev_draid_io_start()
2050 ASSERT3U(zio->io_offset, ==, vdev_draid_get_astart(vd, zio->io_offset)); in vdev_draid_io_start()
2052 raidz_map_t *rm = vdev_draid_map_alloc(zio); in vdev_draid_io_start()
2053 zio->io_vsd = rm; in vdev_draid_io_start()
2054 zio->io_vsd_ops = &vdev_raidz_vsd_ops; in vdev_draid_io_start()
2056 if (zio->io_type == ZIO_TYPE_WRITE) { in vdev_draid_io_start()
2058 vdev_draid_io_start_write(zio, rm->rm_row[i]); in vdev_draid_io_start()
2061 ASSERT(zio->io_type == ZIO_TYPE_READ); in vdev_draid_io_start()
2064 vdev_draid_io_start_read(zio, rm->rm_row[i]); in vdev_draid_io_start()
2068 zio_execute(zio); in vdev_draid_io_start()
2076 vdev_draid_io_done(zio_t *zio) in vdev_draid_io_done() argument
2078 vdev_raidz_io_done(zio); in vdev_draid_io_done()
2508 vdev_draid_spare_child_done(zio_t *zio) in vdev_draid_spare_child_done() argument
2510 zio_t *pio = zio->io_private; in vdev_draid_spare_child_done()
2519 if (!vdev_writeable(zio->io_vd)) in vdev_draid_spare_child_done()
2523 pio->io_error = zio->io_error; in vdev_draid_spare_child_done()
2569 vdev_draid_spare_ioctl(zio_t *zio) in vdev_draid_spare_ioctl() argument
2571 vdev_t *vd = zio->io_vd; in vdev_draid_spare_ioctl()
2574 if (zio->io_cmd == DKIOCFLUSHWRITECACHE) { in vdev_draid_spare_ioctl()
2576 zio_nowait(zio_vdev_child_io(zio, NULL, in vdev_draid_spare_ioctl()
2577 vd->vdev_child[c], zio->io_offset, zio->io_abd, in vdev_draid_spare_ioctl()
2578 zio->io_size, zio->io_type, zio->io_priority, 0, in vdev_draid_spare_ioctl()
2579 vdev_draid_spare_child_done, zio)); in vdev_draid_spare_ioctl()
2596 vdev_draid_spare_io_start(zio_t *zio) in vdev_draid_spare_io_start() argument
2598 vdev_t *cvd = NULL, *vd = zio->io_vd; in vdev_draid_spare_io_start()
2600 uint64_t offset = zio->io_offset - VDEV_LABEL_START_SIZE; in vdev_draid_spare_io_start()
2607 zio->io_error = ENXIO; in vdev_draid_spare_io_start()
2608 zio_interrupt(zio); in vdev_draid_spare_io_start()
2612 switch (zio->io_type) { in vdev_draid_spare_io_start()
2614 zio->io_error = vdev_draid_spare_ioctl(zio); in vdev_draid_spare_io_start()
2618 if (VDEV_OFFSET_IS_LABEL(vd, zio->io_offset)) { in vdev_draid_spare_io_start()
2627 if (zio->io_flags & ZIO_FLAG_PROBE || in vdev_draid_spare_io_start()
2628 zio->io_flags & ZIO_FLAG_CONFIG_WRITER) { in vdev_draid_spare_io_start()
2629 zio->io_error = 0; in vdev_draid_spare_io_start()
2631 zio->io_error = SET_ERROR(EIO); in vdev_draid_spare_io_start()
2637 zio->io_error = SET_ERROR(ENXIO); in vdev_draid_spare_io_start()
2639 zio_nowait(zio_vdev_child_io(zio, NULL, cvd, in vdev_draid_spare_io_start()
2640 offset, zio->io_abd, zio->io_size, in vdev_draid_spare_io_start()
2641 zio->io_type, zio->io_priority, 0, in vdev_draid_spare_io_start()
2642 vdev_draid_spare_child_done, zio)); in vdev_draid_spare_io_start()
2648 if (VDEV_OFFSET_IS_LABEL(vd, zio->io_offset)) { in vdev_draid_spare_io_start()
2656 if (zio->io_flags & ZIO_FLAG_PROBE) { in vdev_draid_spare_io_start()
2657 zio->io_error = 0; in vdev_draid_spare_io_start()
2659 zio->io_error = SET_ERROR(EIO); in vdev_draid_spare_io_start()
2665 zio->io_error = SET_ERROR(ENXIO); in vdev_draid_spare_io_start()
2667 zio_nowait(zio_vdev_child_io(zio, NULL, cvd, in vdev_draid_spare_io_start()
2668 offset, zio->io_abd, zio->io_size, in vdev_draid_spare_io_start()
2669 zio->io_type, zio->io_priority, 0, in vdev_draid_spare_io_start()
2670 vdev_draid_spare_child_done, zio)); in vdev_draid_spare_io_start()
2677 ASSERT0(VDEV_OFFSET_IS_LABEL(vd, zio->io_offset)); in vdev_draid_spare_io_start()
2682 zio->io_error = SET_ERROR(ENXIO); in vdev_draid_spare_io_start()
2684 zio_nowait(zio_vdev_child_io(zio, NULL, cvd, in vdev_draid_spare_io_start()
2685 offset, zio->io_abd, zio->io_size, in vdev_draid_spare_io_start()
2686 zio->io_type, zio->io_priority, 0, in vdev_draid_spare_io_start()
2687 vdev_draid_spare_child_done, zio)); in vdev_draid_spare_io_start()
2692 zio->io_error = SET_ERROR(ENOTSUP); in vdev_draid_spare_io_start()
2696 zio_execute(zio); in vdev_draid_spare_io_start()
2700 vdev_draid_spare_io_done(zio_t *zio) in vdev_draid_spare_io_done() argument
2702 (void) zio; in vdev_draid_spare_io_done()