Lines Matching refs:bv
157 void bvec_free(mempool_t *pool, struct bio_vec *bv, unsigned short nr_vecs) in bvec_free() argument
162 mempool_free(bv, pool); in bvec_free()
164 kmem_cache_free(biovec_slab(nr_vecs)->slab, bv); in bvec_free()
534 struct bio_vec bv; in zero_fill_bio() local
537 bio_for_each_segment(bv, bio, iter) in zero_fill_bio()
538 memzero_bvec(&bv); in zero_fill_bio()
554 struct bio_vec bv; in bio_truncate() local
565 bio_for_each_segment(bv, bio, iter) { in bio_truncate()
566 if (done + bv.bv_len > new_size) { in bio_truncate()
573 zero_user(bv.bv_page, bv.bv_offset + offset, in bio_truncate()
574 bv.bv_len - offset); in bio_truncate()
577 done += bv.bv_len; in bio_truncate()
780 static inline bool page_is_mergeable(const struct bio_vec *bv, in page_is_mergeable() argument
784 size_t bv_end = bv->bv_offset + bv->bv_len; in page_is_mergeable()
785 phys_addr_t vec_end_addr = page_to_phys(bv->bv_page) + bv_end - 1; in page_is_mergeable()
790 if (xen_domain() && !xen_biovec_phys_mergeable(bv, page)) in page_is_mergeable()
796 return (bv->bv_page + bv_end / PAGE_SIZE) == (page + off / PAGE_SIZE); in page_is_mergeable()
808 struct bio_vec *bv = &bio->bi_io_vec[bio->bi_vcnt - 1]; in bio_try_merge_hw_seg() local
810 phys_addr_t addr1 = page_to_phys(bv->bv_page) + bv->bv_offset; in bio_try_merge_hw_seg()
815 if (len > queue_max_segment_size(q) - bv->bv_len) in bio_try_merge_hw_seg()
953 struct bio_vec *bv = &bio->bi_io_vec[bio->bi_vcnt - 1]; in __bio_try_merge_page() local
955 if (page_is_mergeable(bv, page, len, off, same_page)) { in __bio_try_merge_page()
960 bv->bv_len += len; in __bio_try_merge_page()
982 struct bio_vec *bv = &bio->bi_io_vec[bio->bi_vcnt]; in __bio_add_page() local
987 bv->bv_page = page; in __bio_add_page()
988 bv->bv_offset = off; in __bio_add_page()
989 bv->bv_len = len; in __bio_add_page()
1124 struct bio_vec *bv = bio->bi_io_vec + bio->bi_vcnt; in __bio_iov_iter_get_pages() local
1125 struct page **pages = (struct page **)bv; in __bio_iov_iter_get_pages()