Lines Matching refs:vbio

694 	vbio_t *vbio = kmem_zalloc(sizeof (vbio_t), KM_SLEEP);  in vbio_alloc()  local
696 vbio->vbio_zio = zio; in vbio_alloc()
697 vbio->vbio_bdev = bdev; in vbio_alloc()
698 vbio->vbio_abd = NULL; in vbio_alloc()
699 vbio->vbio_max_segs = vdev_bio_max_segs(bdev); in vbio_alloc()
700 vbio->vbio_max_bytes = vdev_bio_max_bytes(bdev); in vbio_alloc()
701 vbio->vbio_lbs_mask = ~(bdev_logical_block_size(bdev)-1); in vbio_alloc()
702 vbio->vbio_offset = zio->io_offset; in vbio_alloc()
703 vbio->vbio_bio = NULL; in vbio_alloc()
704 vbio->vbio_flags = flags; in vbio_alloc()
706 return (vbio); in vbio_alloc()
712 vbio_add_page(vbio_t *vbio, struct page *page, uint_t size, uint_t offset) in vbio_add_page() argument
714 struct bio *bio = vbio->vbio_bio; in vbio_add_page()
720 bio = vdev_bio_alloc(vbio->vbio_bdev, GFP_NOIO, in vbio_add_page()
721 vbio->vbio_max_segs); in vbio_add_page()
724 BIO_BI_SECTOR(bio) = vbio->vbio_offset >> 9; in vbio_add_page()
726 vbio->vbio_zio->io_type == ZIO_TYPE_WRITE ? in vbio_add_page()
727 WRITE : READ, vbio->vbio_flags); in vbio_add_page()
729 if (vbio->vbio_bio) { in vbio_add_page()
730 bio_chain(vbio->vbio_bio, bio); in vbio_add_page()
731 vdev_submit_bio(vbio->vbio_bio); in vbio_add_page()
733 vbio->vbio_bio = bio; in vbio_add_page()
744 ssize = MIN(size, (vbio->vbio_max_bytes - BIO_BI_SIZE(bio)) & in vbio_add_page()
745 vbio->vbio_lbs_mask); in vbio_add_page()
755 vbio->vbio_offset += BIO_BI_SIZE(bio); in vbio_add_page()
768 vbio_t *vbio = priv; in vbio_fill_cb() local
769 return (vbio_add_page(vbio, page, len, off)); in vbio_fill_cb()
774 vbio_submit(vbio_t *vbio, abd_t *abd, uint64_t size) in vbio_submit() argument
787 (void) abd_iterate_page_func(abd, 0, size, vbio_fill_cb, vbio); in vbio_submit()
788 ASSERT(vbio->vbio_bio); in vbio_submit()
790 vbio->vbio_bio->bi_end_io = vbio_completion; in vbio_submit()
791 vbio->vbio_bio->bi_private = vbio; in vbio_submit()
799 vdev_submit_bio(vbio->vbio_bio); in vbio_submit()
807 vbio_t *vbio = bio->bi_private; in BIO_END_IO_PROTO() local
808 zio_t *zio = vbio->vbio_zio; in BIO_END_IO_PROTO()
834 if (vbio->vbio_abd != NULL) { in BIO_END_IO_PROTO()
835 void *buf = abd_to_buf(vbio->vbio_abd); in BIO_END_IO_PROTO()
836 abd_free(vbio->vbio_abd); in BIO_END_IO_PROTO()
837 vbio->vbio_abd = NULL; in BIO_END_IO_PROTO()
846 kmem_free(vbio, sizeof (vbio_t)); in BIO_END_IO_PROTO()
974 vbio_t *vbio = vbio_alloc(zio, bdev, flags); in vdev_disk_io_rw() local
976 vbio->vbio_abd = abd; in vdev_disk_io_rw()
979 vbio_submit(vbio, abd, zio->io_size); in vdev_disk_io_rw()