Lines Matching refs:bv
158 void bvec_free(mempool_t *pool, struct bio_vec *bv, unsigned short nr_vecs) in bvec_free() argument
163 mempool_free(bv, pool); in bvec_free()
165 kmem_cache_free(biovec_slab(nr_vecs)->slab, bv); in bvec_free()
587 struct bio_vec bv; in zero_fill_bio() local
590 bio_for_each_segment(bv, bio, iter) in zero_fill_bio()
591 memzero_bvec(&bv); in zero_fill_bio()
607 struct bio_vec bv; in bio_truncate() local
618 bio_for_each_segment(bv, bio, iter) { in bio_truncate()
619 if (done + bv.bv_len > new_size) { in bio_truncate()
626 zero_user(bv.bv_page, bv.bv_offset + offset, in bio_truncate()
627 bv.bv_len - offset); in bio_truncate()
630 done += bv.bv_len; in bio_truncate()
854 static inline bool page_is_mergeable(const struct bio_vec *bv, in page_is_mergeable() argument
858 size_t bv_end = bv->bv_offset + bv->bv_len; in page_is_mergeable()
859 phys_addr_t vec_end_addr = page_to_phys(bv->bv_page) + bv_end - 1; in page_is_mergeable()
864 if (xen_domain() && !xen_biovec_phys_mergeable(bv, page)) in page_is_mergeable()
872 return (bv->bv_page + bv_end / PAGE_SIZE) == (page + off / PAGE_SIZE); in page_is_mergeable()
898 struct bio_vec *bv = &bio->bi_io_vec[bio->bi_vcnt - 1]; in __bio_try_merge_page() local
900 if (page_is_mergeable(bv, page, len, off, same_page)) { in __bio_try_merge_page()
905 bv->bv_len += len; in __bio_try_merge_page()
922 struct bio_vec *bv = &bio->bi_io_vec[bio->bi_vcnt - 1]; in bio_try_merge_hw_seg() local
924 phys_addr_t addr1 = page_to_phys(bv->bv_page) + bv->bv_offset; in bio_try_merge_hw_seg()
929 if (bv->bv_len + len > queue_max_segment_size(q)) in bio_try_merge_hw_seg()
1057 struct bio_vec *bv = &bio->bi_io_vec[bio->bi_vcnt]; in __bio_add_page() local
1062 bv->bv_page = page; in __bio_add_page()
1063 bv->bv_offset = off; in __bio_add_page()
1064 bv->bv_len = len; in __bio_add_page()
1196 struct bio_vec *bv = bio->bi_io_vec + bio->bi_vcnt; in __bio_iov_iter_get_pages() local
1197 struct page **pages = (struct page **)bv; in __bio_iov_iter_get_pages()