Lines Matching refs:dio

622 	zio_t *first, *last, *aio, *dio, *mandatory, *nio;  in vdev_queue_aggregate()  local
686 while ((dio = AVL_PREV(t, first)) != NULL && in vdev_queue_aggregate()
687 (dio->io_flags & ZIO_FLAG_AGG_INHERIT) == flags && in vdev_queue_aggregate()
688 IO_SPAN(dio, last) <= limit && in vdev_queue_aggregate()
689 IO_GAP(dio, first) <= maxgap && in vdev_queue_aggregate()
690 dio->io_type == zio->io_type) { in vdev_queue_aggregate()
691 first = dio; in vdev_queue_aggregate()
711 while ((dio = AVL_NEXT(t, last)) != NULL && in vdev_queue_aggregate()
712 (dio->io_flags & ZIO_FLAG_AGG_INHERIT) == flags && in vdev_queue_aggregate()
713 (IO_SPAN(first, dio) <= limit || in vdev_queue_aggregate()
714 (dio->io_flags & ZIO_FLAG_OPTIONAL)) && in vdev_queue_aggregate()
715 IO_SPAN(first, dio) <= SPA_MAXBLOCKSIZE && in vdev_queue_aggregate()
716 IO_GAP(last, dio) <= maxgap && in vdev_queue_aggregate()
717 dio->io_type == zio->io_type) { in vdev_queue_aggregate()
718 last = dio; in vdev_queue_aggregate()
735 while ((dio = AVL_NEXT(t, nio)) != NULL && in vdev_queue_aggregate()
736 IO_GAP(nio, dio) == 0 && in vdev_queue_aggregate()
737 IO_GAP(mandatory, dio) <= zfs_vdev_write_gap_limit) { in vdev_queue_aggregate()
738 nio = dio; in vdev_queue_aggregate()
753 dio = AVL_NEXT(t, last); in vdev_queue_aggregate()
754 ASSERT3P(dio, !=, NULL); in vdev_queue_aggregate()
755 dio->io_flags &= ~ZIO_FLAG_OPTIONAL; in vdev_queue_aggregate()
783 dio = nio; in vdev_queue_aggregate()
784 nio = AVL_NEXT(t, dio); in vdev_queue_aggregate()
785 ASSERT3P(dio, !=, NULL); in vdev_queue_aggregate()
786 zio_add_child(dio, aio); in vdev_queue_aggregate()
787 vdev_queue_io_remove(vq, dio); in vdev_queue_aggregate()
789 if (dio->io_offset != next_offset) { in vdev_queue_aggregate()
791 ASSERT3U(dio->io_type, ==, ZIO_TYPE_READ); in vdev_queue_aggregate()
792 ASSERT3U(dio->io_offset, >, next_offset); in vdev_queue_aggregate()
794 dio->io_offset - next_offset, B_TRUE); in vdev_queue_aggregate()
797 if (dio->io_abd && in vdev_queue_aggregate()
798 (dio->io_size != abd_get_size(dio->io_abd))) { in vdev_queue_aggregate()
800 ASSERT3U(abd_get_size(dio->io_abd), >, dio->io_size); in vdev_queue_aggregate()
801 abd = abd_get_offset_size(dio->io_abd, 0, dio->io_size); in vdev_queue_aggregate()
804 if (dio->io_flags & ZIO_FLAG_NODATA) { in vdev_queue_aggregate()
806 ASSERT3U(dio->io_type, ==, ZIO_TYPE_WRITE); in vdev_queue_aggregate()
807 ASSERT3P(dio->io_abd, ==, NULL); in vdev_queue_aggregate()
809 abd_get_zeros(dio->io_size), B_TRUE); in vdev_queue_aggregate()
817 abd_gang_add(aio->io_abd, dio->io_abd, in vdev_queue_aggregate()
821 next_offset = dio->io_offset + dio->io_size; in vdev_queue_aggregate()
822 } while (dio != last); in vdev_queue_aggregate()
910 zio_t *dio, *nio; in vdev_queue_io() local
958 while ((dio = zio_walk_parents(nio, &zl)) != NULL) { in vdev_queue_io()
959 ASSERT3U(dio->io_type, ==, nio->io_type); in vdev_queue_io()
960 zio_vdev_io_bypass(dio); in vdev_queue_io()
961 zio_execute(dio); in vdev_queue_io()
974 zio_t *dio, *nio; in vdev_queue_io_done() local
987 while ((dio = zio_walk_parents(nio, &zl)) != NULL) { in vdev_queue_io_done()
988 ASSERT3U(dio->io_type, ==, nio->io_type); in vdev_queue_io_done()
989 zio_vdev_io_bypass(dio); in vdev_queue_io_done()
990 zio_execute(dio); in vdev_queue_io_done()