Lines Matching refs:fio
171 #define IO_SPAN(fio, lio) ((lio)->io_offset + (lio)->io_size - (fio)->io_offset) argument
172 #define IO_GAP(fio, lio) (-IO_SPAN(lio, fio)) argument
177 zio_t *fio, *lio, *aio, *dio, *nio, *mio; in vdev_queue_io_to_issue() local
191 fio = lio = avl_first(&vq->vq_deadline_tree); in vdev_queue_io_to_issue()
193 t = fio->io_vdev_tree; in vdev_queue_io_to_issue()
194 flags = fio->io_flags & ZIO_FLAG_AGG_INHERIT; in vdev_queue_io_to_issue()
211 mio = (fio->io_flags & ZIO_FLAG_OPTIONAL) ? NULL : fio; in vdev_queue_io_to_issue()
217 while ((dio = AVL_PREV(t, fio)) != NULL && in vdev_queue_io_to_issue()
220 IO_GAP(dio, fio) <= maxgap) { in vdev_queue_io_to_issue()
221 fio = dio; in vdev_queue_io_to_issue()
222 if (mio == NULL && !(fio->io_flags & ZIO_FLAG_OPTIONAL)) in vdev_queue_io_to_issue()
223 mio = fio; in vdev_queue_io_to_issue()
229 while ((fio->io_flags & ZIO_FLAG_OPTIONAL) && fio != lio) { in vdev_queue_io_to_issue()
230 fio = AVL_NEXT(t, fio); in vdev_queue_io_to_issue()
231 ASSERT(fio != NULL); in vdev_queue_io_to_issue()
239 IO_SPAN(fio, dio) <= maxspan && in vdev_queue_io_to_issue()
275 while (lio != mio && lio != fio) { in vdev_queue_io_to_issue()
283 if (fio != lio) { in vdev_queue_io_to_issue()
284 uint64_t size = IO_SPAN(fio, lio); in vdev_queue_io_to_issue()
287 aio = zio_vdev_delegated_io(fio->io_vd, fio->io_offset, in vdev_queue_io_to_issue()
288 zio_buf_alloc(size), size, fio->io_type, ZIO_PRIORITY_AGG, in vdev_queue_io_to_issue()
292 nio = fio; in vdev_queue_io_to_issue()
320 ASSERT(fio->io_vdev_tree == t); in vdev_queue_io_to_issue()
321 vdev_queue_io_remove(vq, fio); in vdev_queue_io_to_issue()
329 if (fio->io_flags & ZIO_FLAG_NODATA) { in vdev_queue_io_to_issue()
331 zio_vdev_io_bypass(fio); in vdev_queue_io_to_issue()
332 zio_execute(fio); in vdev_queue_io_to_issue()
337 avl_add(&vq->vq_pending_tree, fio); in vdev_queue_io_to_issue()
339 return (fio); in vdev_queue_io_to_issue()