Lines Matching refs:bv
154 void bvec_free(mempool_t *pool, struct bio_vec *bv, unsigned int idx) in bvec_free() argument
163 mempool_free(bv, pool); in bvec_free()
167 kmem_cache_free(bvs->slab, bv); in bvec_free()
535 struct bio_vec bv; in zero_fill_bio_iter() local
538 __bio_for_each_segment(bv, bio, iter, start) { in zero_fill_bio_iter()
539 char *data = bvec_kmap_irq(&bv, &flags); in zero_fill_bio_iter()
540 memset(data, 0, bv.bv_len); in zero_fill_bio_iter()
541 flush_dcache_page(bv.bv_page); in zero_fill_bio_iter()
559 struct bio_vec bv; in bio_truncate() local
570 bio_for_each_segment(bv, bio, iter) { in bio_truncate()
571 if (done + bv.bv_len > new_size) { in bio_truncate()
578 zero_user(bv.bv_page, bv.bv_offset + offset, in bio_truncate()
579 bv.bv_len - offset); in bio_truncate()
582 done += bv.bv_len; in bio_truncate()
738 static inline bool page_is_mergeable(const struct bio_vec *bv, in page_is_mergeable() argument
742 size_t bv_end = bv->bv_offset + bv->bv_len; in page_is_mergeable()
743 phys_addr_t vec_end_addr = page_to_phys(bv->bv_page) + bv_end - 1; in page_is_mergeable()
748 if (xen_domain() && !xen_biovec_phys_mergeable(bv, page)) in page_is_mergeable()
754 return (bv->bv_page + bv_end / PAGE_SIZE) == (page + off / PAGE_SIZE); in page_is_mergeable()
766 struct bio_vec *bv = &bio->bi_io_vec[bio->bi_vcnt - 1]; in bio_try_merge_hw_seg() local
768 phys_addr_t addr1 = page_to_phys(bv->bv_page) + bv->bv_offset; in bio_try_merge_hw_seg()
773 if (bv->bv_len + len > queue_max_segment_size(q)) in bio_try_merge_hw_seg()
878 struct bio_vec *bv = &bio->bi_io_vec[bio->bi_vcnt - 1]; in __bio_try_merge_page() local
880 if (page_is_mergeable(bv, page, len, off, same_page)) { in __bio_try_merge_page()
885 bv->bv_len += len; in __bio_try_merge_page()
907 struct bio_vec *bv = &bio->bi_io_vec[bio->bi_vcnt]; in __bio_add_page() local
912 bv->bv_page = page; in __bio_add_page()
913 bv->bv_offset = off; in __bio_add_page()
914 bv->bv_len = len; in __bio_add_page()
966 const struct bio_vec *bv = iter->bvec; in __bio_iov_bvec_add_pages() local
970 if (WARN_ON_ONCE(iter->iov_offset > bv->bv_len)) in __bio_iov_bvec_add_pages()
973 len = min_t(size_t, bv->bv_len - iter->iov_offset, iter->count); in __bio_iov_bvec_add_pages()
974 size = bio_add_page(bio, bv->bv_page, len, in __bio_iov_bvec_add_pages()
975 bv->bv_offset + iter->iov_offset); in __bio_iov_bvec_add_pages()
1006 struct bio_vec *bv = bio->bi_io_vec + bio->bi_vcnt; in __bio_iov_iter_get_pages() local
1007 struct page **pages = (struct page **)bv; in __bio_iov_iter_get_pages()
1053 struct bio_vec *bv = bio->bi_io_vec + bio->bi_vcnt; in __bio_iov_append_get_pages() local
1054 struct page **pages = (struct page **)bv; in __bio_iov_append_get_pages()