Lines Matching refs:bv

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