Lines Matching defs:zio

34 #include <sys/zio.h>
649 zio_t *zio = vb->vb_io;
652 * The rest of the zio stack only deals with EIO, ECKSUM, and ENXIO.
656 zio->io_error = (geterror(bp) != 0 ? EIO : 0);
658 if (zio->io_error == 0 && bp->b_resid != 0)
659 zio->io_error = SET_ERROR(EIO);
663 zio_delay_interrupt(zio);
667 vdev_disk_ioctl_free(zio_t *zio)
669 kmem_free(zio->io_vsd, sizeof (struct dk_callback));
680 zio_t *zio = zio_arg;
682 zio->io_error = error;
684 zio_interrupt(zio);
688 vdev_disk_io_start(zio_t *zio)
690 vdev_t *vd = zio->io_vd;
702 zio->io_error = ENXIO;
703 zio_interrupt(zio);
707 if (zio->io_type == ZIO_TYPE_IOCTL) {
710 zio->io_error = SET_ERROR(ENXIO);
711 zio_interrupt(zio);
715 switch (zio->io_cmd) {
723 zio->io_error = SET_ERROR(ENOTSUP);
727 zio->io_vsd = dkc = kmem_alloc(sizeof (*dkc), KM_SLEEP);
728 zio->io_vsd_ops = &vdev_disk_vsd_ops;
732 dkc->dkc_cookie = zio;
734 error = ldi_ioctl(dvd->vd_lh, zio->io_cmd,
746 zio->io_error = error;
751 zio->io_error = SET_ERROR(ENOTSUP);
754 zio_execute(zio);
758 ASSERT(zio->io_type == ZIO_TYPE_READ || zio->io_type == ZIO_TYPE_WRITE);
759 zio->io_target_timestamp = zio_handle_io_delay(zio);
763 vb->vb_io = zio;
768 (zio->io_type == ZIO_TYPE_READ ? B_READ : B_WRITE);
769 if (!(zio->io_flags & (ZIO_FLAG_IO_RETRY | ZIO_FLAG_TRYHARD)))
771 bp->b_bcount = zio->io_size;
772 bp->b_un.b_addr = zio->io_data;
773 bp->b_lblkno = lbtodb(zio->io_offset);
774 bp->b_bufsize = zio->io_size;
782 vdev_disk_io_done(zio_t *zio)
784 vdev_t *vd = zio->io_vd;
792 if (zio->io_error == EIO && !vd->vdev_remove_wanted) {
804 zfs_post_remove(zio->io_spa, vd);
806 spa_async_request(zio->io_spa, SPA_ASYNC_REMOVE);