Lines Matching refs:zio

177 	zio_t *zio = vb->vb_io;  in vdev_file_io_intr()  local
179 zio->io_error = (geterror(bp) != 0 ? EIO : 0); in vdev_file_io_intr()
180 if (zio->io_error == 0 && bp->b_resid != 0) in vdev_file_io_intr()
181 zio->io_error = SET_ERROR(ENOSPC); in vdev_file_io_intr()
183 if (zio->io_type == ZIO_TYPE_READ) { in vdev_file_io_intr()
184 abd_return_buf_copy(zio->io_abd, bp->b_un.b_addr, zio->io_size); in vdev_file_io_intr()
186 abd_return_buf(zio->io_abd, bp->b_un.b_addr, zio->io_size); in vdev_file_io_intr()
190 zio_delay_interrupt(zio); in vdev_file_io_intr()
216 vdev_file_io_start(zio_t *zio) in vdev_file_io_start() argument
218 vdev_t *vd = zio->io_vd; in vdev_file_io_start()
223 if (zio->io_type == ZIO_TYPE_IOCTL) { in vdev_file_io_start()
226 zio->io_error = SET_ERROR(ENXIO); in vdev_file_io_start()
227 zio_interrupt(zio); in vdev_file_io_start()
231 switch (zio->io_cmd) { in vdev_file_io_start()
233 zio->io_error = VOP_FSYNC(vf->vf_vnode, FSYNC | FDSYNC, in vdev_file_io_start()
237 zio->io_error = SET_ERROR(ENOTSUP); in vdev_file_io_start()
240 zio_execute(zio); in vdev_file_io_start()
242 } else if (zio->io_type == ZIO_TYPE_TRIM) { in vdev_file_io_start()
245 ASSERT3U(zio->io_size, !=, 0); in vdev_file_io_start()
248 flck.l_start = zio->io_offset; in vdev_file_io_start()
249 flck.l_len = zio->io_size; in vdev_file_io_start()
252 zio->io_error = VOP_SPACE(vf->vf_vnode, F_FREESP, &flck, in vdev_file_io_start()
255 zio_execute(zio); in vdev_file_io_start()
259 ASSERT(zio->io_type == ZIO_TYPE_READ || zio->io_type == ZIO_TYPE_WRITE); in vdev_file_io_start()
260 zio->io_target_timestamp = zio_handle_io_delay(zio); in vdev_file_io_start()
264 vb->vb_io = zio; in vdev_file_io_start()
268 bp->b_flags = (zio->io_type == ZIO_TYPE_READ ? B_READ : B_WRITE); in vdev_file_io_start()
269 bp->b_bcount = zio->io_size; in vdev_file_io_start()
271 if (zio->io_type == ZIO_TYPE_READ) { in vdev_file_io_start()
273 abd_borrow_buf(zio->io_abd, zio->io_size); in vdev_file_io_start()
276 abd_borrow_buf_copy(zio->io_abd, zio->io_size); in vdev_file_io_start()
279 bp->b_lblkno = lbtodb(zio->io_offset); in vdev_file_io_start()
280 bp->b_bufsize = zio->io_size; in vdev_file_io_start()
290 vdev_file_io_done(zio_t *zio) in vdev_file_io_done() argument