Lines Matching refs:dio

601 	zio_t *first, *last, *aio, *dio, *mandatory, *nio;  in vdev_queue_aggregate()  local
660 while ((dio = AVL_PREV(t, first)) != NULL && in vdev_queue_aggregate()
661 (dio->io_flags & ZIO_FLAG_AGG_INHERIT) == flags && in vdev_queue_aggregate()
662 IO_SPAN(dio, last) <= limit && in vdev_queue_aggregate()
663 IO_GAP(dio, first) <= maxgap && in vdev_queue_aggregate()
664 dio->io_type == zio->io_type) { in vdev_queue_aggregate()
665 first = dio; in vdev_queue_aggregate()
685 while ((dio = AVL_NEXT(t, last)) != NULL && in vdev_queue_aggregate()
686 (dio->io_flags & ZIO_FLAG_AGG_INHERIT) == flags && in vdev_queue_aggregate()
687 (IO_SPAN(first, dio) <= limit || in vdev_queue_aggregate()
688 (dio->io_flags & ZIO_FLAG_OPTIONAL)) && in vdev_queue_aggregate()
689 IO_SPAN(first, dio) <= maxblocksize && in vdev_queue_aggregate()
690 IO_GAP(last, dio) <= maxgap && in vdev_queue_aggregate()
691 dio->io_type == zio->io_type) { in vdev_queue_aggregate()
692 last = dio; in vdev_queue_aggregate()
709 while ((dio = AVL_NEXT(t, nio)) != NULL && in vdev_queue_aggregate()
710 IO_GAP(nio, dio) == 0 && in vdev_queue_aggregate()
711 IO_GAP(mandatory, dio) <= zfs_vdev_write_gap_limit) { in vdev_queue_aggregate()
712 nio = dio; in vdev_queue_aggregate()
727 dio = AVL_NEXT(t, last); in vdev_queue_aggregate()
728 dio->io_flags &= ~ZIO_FLAG_OPTIONAL; in vdev_queue_aggregate()
757 dio = nio; in vdev_queue_aggregate()
758 nio = AVL_NEXT(t, dio); in vdev_queue_aggregate()
759 zio_add_child(dio, aio); in vdev_queue_aggregate()
760 vdev_queue_io_remove(vq, dio); in vdev_queue_aggregate()
762 if (dio->io_offset != next_offset) { in vdev_queue_aggregate()
764 ASSERT3U(dio->io_type, ==, ZIO_TYPE_READ); in vdev_queue_aggregate()
765 ASSERT3U(dio->io_offset, >, next_offset); in vdev_queue_aggregate()
767 dio->io_offset - next_offset, B_TRUE); in vdev_queue_aggregate()
770 if (dio->io_abd && in vdev_queue_aggregate()
771 (dio->io_size != abd_get_size(dio->io_abd))) { in vdev_queue_aggregate()
773 ASSERT3U(abd_get_size(dio->io_abd), >, dio->io_size); in vdev_queue_aggregate()
774 abd = abd_get_offset_size(dio->io_abd, 0, dio->io_size); in vdev_queue_aggregate()
777 if (dio->io_flags & ZIO_FLAG_NODATA) { in vdev_queue_aggregate()
779 ASSERT3U(dio->io_type, ==, ZIO_TYPE_WRITE); in vdev_queue_aggregate()
780 ASSERT3P(dio->io_abd, ==, NULL); in vdev_queue_aggregate()
782 abd_get_zeros(dio->io_size), B_TRUE); in vdev_queue_aggregate()
790 abd_gang_add(aio->io_abd, dio->io_abd, in vdev_queue_aggregate()
794 next_offset = dio->io_offset + dio->io_size; in vdev_queue_aggregate()
795 } while (dio != last); in vdev_queue_aggregate()
872 zio_t *dio, *nio; in vdev_queue_io() local
920 while ((dio = zio_walk_parents(nio, &zl)) != NULL) { in vdev_queue_io()
921 ASSERT3U(dio->io_type, ==, nio->io_type); in vdev_queue_io()
922 zio_vdev_io_bypass(dio); in vdev_queue_io()
923 zio_execute(dio); in vdev_queue_io()
936 zio_t *dio, *nio; in vdev_queue_io_done() local
949 while ((dio = zio_walk_parents(nio, &zl)) != NULL) { in vdev_queue_io_done()
950 ASSERT3U(dio->io_type, ==, nio->io_type); in vdev_queue_io_done()
951 zio_vdev_io_bypass(dio); in vdev_queue_io_done()
952 zio_execute(dio); in vdev_queue_io_done()