Lines Matching defs:dio
599 zio_t *first, *last, *aio, *dio, *mandatory, *nio;
646 while ((dio = AVL_PREV(t, first)) != NULL &&
647 (dio->io_flags & ZIO_FLAG_AGG_INHERIT) == flags &&
648 IO_SPAN(dio, last) <= zfs_vdev_aggregation_limit &&
649 IO_GAP(dio, first) <= maxgap) {
650 first = dio;
666 while ((dio = AVL_NEXT(t, last)) != NULL &&
667 (dio->io_flags & ZIO_FLAG_AGG_INHERIT) == flags &&
668 IO_SPAN(first, dio) <= zfs_vdev_aggregation_limit &&
669 IO_GAP(last, dio) <= maxgap) {
670 last = dio;
688 while ((dio = AVL_NEXT(t, nio)) != NULL &&
689 IO_GAP(nio, dio) == 0 &&
690 IO_GAP(mandatory, dio) <= zfs_vdev_write_gap_limit) {
691 nio = dio;
701 dio = AVL_NEXT(t, last);
702 dio->io_flags &= ~ZIO_FLAG_OPTIONAL;
725 dio = nio;
726 nio = AVL_NEXT(t, dio);
727 ASSERT3U(dio->io_type, ==, aio->io_type);
729 if (dio->io_flags & ZIO_FLAG_NODATA) {
730 ASSERT3U(dio->io_type, ==, ZIO_TYPE_WRITE);
731 bzero((char *)aio->io_data + (dio->io_offset -
732 aio->io_offset), dio->io_size);
733 } else if (dio->io_type == ZIO_TYPE_WRITE) {
734 bcopy(dio->io_data, (char *)aio->io_data +
735 (dio->io_offset - aio->io_offset),
736 dio->io_size);
739 zio_add_child(dio, aio);
740 vdev_queue_io_remove(vq, dio);
741 zio_vdev_io_bypass(dio);
742 zio_execute(dio);
743 } while (dio != last);