/linux-4.4.14/drivers/block/zram/ |
H A D | zram_drv.c | 109 static inline bool is_partial_io(struct bio_vec *bvec) is_partial_io() argument 111 return bvec->bv_len != PAGE_SIZE; is_partial_io() 138 static void update_position(u32 *index, int *offset, struct bio_vec *bvec) update_position() argument 140 if (*offset + bvec->bv_len >= PAGE_SIZE) update_position() 142 *offset = (*offset + bvec->bv_len) % PAGE_SIZE; update_position() 175 static void handle_zero_page(struct bio_vec *bvec) handle_zero_page() argument 177 struct page *page = bvec->bv_page; handle_zero_page() 181 if (is_partial_io(bvec)) handle_zero_page() 182 memset(user_mem + bvec->bv_offset, 0, bvec->bv_len); handle_zero_page() 598 static int zram_bvec_read(struct zram *zram, struct bio_vec *bvec, zram_bvec_read() argument 605 page = bvec->bv_page; zram_bvec_read() 611 handle_zero_page(bvec); zram_bvec_read() 616 if (is_partial_io(bvec)) zram_bvec_read() 621 if (!is_partial_io(bvec)) zram_bvec_read() 635 if (is_partial_io(bvec)) zram_bvec_read() 636 memcpy(user_mem + bvec->bv_offset, uncmem + offset, zram_bvec_read() 637 bvec->bv_len); zram_bvec_read() 643 if (is_partial_io(bvec)) zram_bvec_read() 648 static int zram_bvec_write(struct zram *zram, struct bio_vec *bvec, u32 index, zram_bvec_write() argument 660 page = bvec->bv_page; zram_bvec_write() 661 if (is_partial_io(bvec)) { zram_bvec_write() 679 if (is_partial_io(bvec)) { zram_bvec_write() 680 memcpy(uncmem + offset, user_mem + bvec->bv_offset, zram_bvec_write() 681 bvec->bv_len); zram_bvec_write() 703 if (!is_partial_io(bvec)) { zram_bvec_write() 716 if (is_partial_io(bvec)) zram_bvec_write() 739 if ((clen == PAGE_SIZE) && !is_partial_io(bvec)) { zram_bvec_write() 768 if (is_partial_io(bvec)) zram_bvec_write() 812 static int zram_bvec_rw(struct zram *zram, struct bio_vec *bvec, u32 index, zram_bvec_rw() argument 818 generic_start_io_acct(rw, bvec->bv_len >> SECTOR_SHIFT, zram_bvec_rw() 823 ret = zram_bvec_read(zram, bvec, index, offset); zram_bvec_rw() 826 ret = zram_bvec_write(zram, bvec, index, offset); zram_bvec_rw() 845 struct bio_vec bvec; __zram_make_request() local 859 bio_for_each_segment(bvec, bio, iter) { bio_for_each_segment() 862 if (bvec.bv_len > max_transfer_size) { bio_for_each_segment() 869 bv.bv_page = bvec.bv_page; bio_for_each_segment() 871 bv.bv_offset = bvec.bv_offset; bio_for_each_segment() 876 bv.bv_len = bvec.bv_len - max_transfer_size; bio_for_each_segment() 881 if (zram_bvec_rw(zram, &bvec, index, offset, rw) < 0) bio_for_each_segment() 884 update_position(&index, &offset, &bvec); bio_for_each_segment()
|
/linux-4.4.14/include/linux/ |
H A D | bio.h | 64 #define __bvec_iter_bvec(bvec, iter) (&(bvec)[(iter).bi_idx]) 66 #define bvec_iter_page(bvec, iter) \ 67 (__bvec_iter_bvec((bvec), (iter))->bv_page) 69 #define bvec_iter_len(bvec, iter) \ 71 __bvec_iter_bvec((bvec), (iter))->bv_len - (iter).bi_bvec_done) 73 #define bvec_iter_offset(bvec, iter) \ 74 (__bvec_iter_bvec((bvec), (iter))->bv_offset + (iter).bi_bvec_done) 76 #define bvec_iter_bvec(bvec, iter) \ 78 .bv_page = bvec_iter_page((bvec), (iter)), \ 79 .bv_len = bvec_iter_len((bvec), (iter)), \ 80 .bv_offset = bvec_iter_offset((bvec), (iter)), \ 200 "Attempted to advance past end of bvec iter\n"); bvec_iter_advance() 243 #define bio_iter_last(bvec, iter) ((iter).bi_size == (bvec).bv_len) 332 else /* in the middle of bvec */ bio_get_last_bvec() 338 * iter.bi_bvec_done records actual length of the last bvec bio_get_last_bvec() 381 struct bio_vec bip_inline_vecs[0];/* embedded bvec array */ 542 static inline char *bvec_kmap_irq(struct bio_vec *bvec, unsigned long *flags) bvec_kmap_irq() argument 551 addr = (unsigned long) kmap_atomic(bvec->bv_page); bvec_kmap_irq() 555 return (char *) addr + bvec->bv_offset; bvec_kmap_irq() 567 static inline char *bvec_kmap_irq(struct bio_vec *bvec, unsigned long *flags) bvec_kmap_irq() argument 569 return page_address(bvec->bv_page) + bvec->bv_offset; bvec_kmap_irq()
|
H A D | uio.h | 35 const struct bio_vec *bvec; member in union:iov_iter::__anon13255 94 void iov_iter_bvec(struct iov_iter *i, int direction, const struct bio_vec *bvec,
|
H A D | blk_types.h | 39 current bvec */ 129 #define BIO_OWNS_VEC 13 /* bio_free() should free bvec */
|
H A D | blkdev.h | 749 #define rq_iter_last(bvec, _iter) \ 751 bio_iter_last(bvec, _iter.iter))
|
/linux-4.4.14/fs/btrfs/ |
H A D | compression.h | 37 struct bio_vec *bvec, int vcnt, 48 void btrfs_clear_biovec_end(struct bio_vec *bvec, int vcnt, 69 struct bio_vec *bvec,
|
H A D | file-item.c | 165 struct bio_vec *bvec = bio->bi_io_vec; __btrfs_lookup_bio_sums() local 225 offset = page_offset(bvec->bv_page) + bvec->bv_offset; __btrfs_lookup_bio_sums() 246 offset + bvec->bv_len - 1, __btrfs_lookup_bio_sums() 286 disk_bytenr += bvec->bv_len; __btrfs_lookup_bio_sums() 287 offset += bvec->bv_len; __btrfs_lookup_bio_sums() 288 bvec++; __btrfs_lookup_bio_sums() 432 struct bio_vec *bvec = bio->bi_io_vec; btrfs_csum_one_bio() local 451 offset = page_offset(bvec->bv_page) + bvec->bv_offset; btrfs_csum_one_bio() 460 offset = page_offset(bvec->bv_page) + bvec->bv_offset; btrfs_csum_one_bio() 483 data = kmap_atomic(bvec->bv_page); btrfs_csum_one_bio() 485 sums->sums[index] = btrfs_csum_data(data + bvec->bv_offset, btrfs_csum_one_bio() 487 bvec->bv_len); btrfs_csum_one_bio() 494 total_bytes += bvec->bv_len; btrfs_csum_one_bio() 495 this_sum_bytes += bvec->bv_len; btrfs_csum_one_bio() 496 offset += bvec->bv_len; btrfs_csum_one_bio() 497 bvec++; btrfs_csum_one_bio()
|
H A D | compression.c | 85 u64 disk_start, struct bio_vec *bvec, 201 struct bio_vec *bvec; end_compressed_bio_read() local 207 bio_for_each_segment_all(bvec, cb->orig_bio, i) end_compressed_bio_read() 208 SetPageChecked(bvec->bv_page); end_compressed_bio_read() 918 * bvec is a bio_vec of pages from the file that we want to decompress into 930 u64 disk_start, struct bio_vec *bvec, btrfs_decompress_biovec() 942 bvec, vcnt, srclen); btrfs_decompress_biovec() 984 struct bio_vec *bvec, int vcnt, btrfs_decompress_buf2page() 994 struct page *page_out = bvec[*pg_index].bv_page; btrfs_decompress_buf2page() 1039 page_out = bvec[*pg_index].bv_page; btrfs_decompress_buf2page() 1074 void btrfs_clear_biovec_end(struct bio_vec *bvec, int vcnt, btrfs_clear_biovec_end() argument 1079 struct page *page = bvec[pg_index].bv_page; btrfs_clear_biovec_end() 1080 unsigned long off = bvec[pg_index].bv_offset; btrfs_clear_biovec_end() 1081 unsigned long len = bvec[pg_index].bv_len; btrfs_clear_biovec_end() 929 btrfs_decompress_biovec(int type, struct page **pages_in, u64 disk_start, struct bio_vec *bvec, int vcnt, size_t srclen) btrfs_decompress_biovec() argument 982 btrfs_decompress_buf2page(char *buf, unsigned long buf_start, unsigned long total_out, u64 disk_start, struct bio_vec *bvec, int vcnt, unsigned long *pg_index, unsigned long *pg_offset) btrfs_decompress_buf2page() argument
|
H A D | lzo.c | 260 struct bio_vec *bvec, lzo_decompress_biovec() 369 bvec, vcnt, lzo_decompress_biovec() 377 btrfs_clear_biovec_end(bvec, vcnt, page_out_index, pg_offset); lzo_decompress_biovec() 257 lzo_decompress_biovec(struct list_head *ws, struct page **pages_in, u64 disk_start, struct bio_vec *bvec, int vcnt, size_t srclen) lzo_decompress_biovec() argument
|
H A D | zlib.c | 215 struct bio_vec *bvec, zlib_decompress_biovec() 269 bvec, vcnt, zlib_decompress_biovec() 303 btrfs_clear_biovec_end(bvec, vcnt, page_out_index, pg_offset); zlib_decompress_biovec() 213 zlib_decompress_biovec(struct list_head *ws, struct page **pages_in, u64 disk_start, struct bio_vec *bvec, int vcnt, size_t srclen) zlib_decompress_biovec() argument
|
H A D | extent_io.c | 2554 struct bio_vec *bvec; end_bio_extent_writepage() local 2559 bio_for_each_segment_all(bvec, bio, i) { bio_for_each_segment_all() 2560 struct page *page = bvec->bv_page; bio_for_each_segment_all() 2567 if (bvec->bv_offset || bvec->bv_len != PAGE_CACHE_SIZE) { bio_for_each_segment_all() 2568 if (bvec->bv_offset + bvec->bv_len != PAGE_CACHE_SIZE) bio_for_each_segment_all() 2571 bvec->bv_offset, bvec->bv_len); bio_for_each_segment_all() 2576 bvec->bv_offset, bvec->bv_len); bio_for_each_segment_all() 2580 end = start + bvec->bv_offset + bvec->bv_len - 1; bio_for_each_segment_all() 2616 struct bio_vec *bvec; end_bio_extent_readpage() local 2630 bio_for_each_segment_all(bvec, bio, i) { bio_for_each_segment_all() 2631 struct page *page = bvec->bv_page; bio_for_each_segment_all() 2644 if (bvec->bv_offset || bvec->bv_len != PAGE_CACHE_SIZE) { bio_for_each_segment_all() 2645 if (bvec->bv_offset + bvec->bv_len != PAGE_CACHE_SIZE) bio_for_each_segment_all() 2648 bvec->bv_offset, bvec->bv_len); bio_for_each_segment_all() 2653 bvec->bv_offset, bvec->bv_len); bio_for_each_segment_all() 2657 end = start + bvec->bv_offset + bvec->bv_len - 1; bio_for_each_segment_all() 2658 len = bvec->bv_len; bio_for_each_segment_all() 2820 struct bio_vec *bvec = bio->bi_io_vec + bio->bi_vcnt - 1; submit_one_bio() local 2821 struct page *page = bvec->bv_page; submit_one_bio() 2825 start = page_offset(page) + bvec->bv_offset; submit_one_bio() 3820 struct bio_vec *bvec; end_bio_extent_buffer_writepage() local 3824 bio_for_each_segment_all(bvec, bio, i) { bio_for_each_segment_all() 3825 struct page *page = bvec->bv_page; bio_for_each_segment_all()
|
H A D | inode.c | 7837 struct bio_vec *bvec; btrfs_retry_endio_nocsum() local 7844 bio_for_each_segment_all(bvec, bio, i) btrfs_retry_endio_nocsum() 7845 clean_io_failure(done->inode, done->start, bvec->bv_page, 0); btrfs_retry_endio_nocsum() 7854 struct bio_vec *bvec; __btrfs_correct_data_nocsum() local 7863 bio_for_each_segment_all(bvec, &io_bio->bio, i) { __btrfs_correct_data_nocsum() 7869 ret = dio_read_error(inode, &io_bio->bio, bvec->bv_page, start, __btrfs_correct_data_nocsum() 7870 start + bvec->bv_len - 1, __btrfs_correct_data_nocsum() 7883 start += bvec->bv_len; __btrfs_correct_data_nocsum() 7893 struct bio_vec *bvec; btrfs_retry_endio() local 7902 bio_for_each_segment_all(bvec, bio, i) { bio_for_each_segment_all() 7904 bvec->bv_page, 0, bio_for_each_segment_all() 7905 done->start, bvec->bv_len); bio_for_each_segment_all() 7908 bvec->bv_page, 0); bio_for_each_segment_all() 7922 struct bio_vec *bvec; __btrfs_subio_endio_read() local 7933 bio_for_each_segment_all(bvec, &io_bio->bio, i) { __btrfs_subio_endio_read() 7934 ret = __readpage_endio_check(inode, io_bio, i, bvec->bv_page, __btrfs_subio_endio_read() 7935 0, start, bvec->bv_len); __btrfs_subio_endio_read() 7943 ret = dio_read_error(inode, &io_bio->bio, bvec->bv_page, start, __btrfs_subio_endio_read() 7944 start + bvec->bv_len - 1, __btrfs_subio_endio_read() 7959 offset += bvec->bv_len; __btrfs_subio_endio_read() 7960 start += bvec->bv_len; __btrfs_subio_endio_read() 8200 struct bio_vec *bvec = orig_bio->bi_io_vec; btrfs_submit_direct_hook() local 8236 while (bvec <= (orig_bio->bi_io_vec + orig_bio->bi_vcnt - 1)) { btrfs_submit_direct_hook() 8237 if (map_length < submit_len + bvec->bv_len || btrfs_submit_direct_hook() 8238 bio_add_page(bio, bvec->bv_page, bvec->bv_len, btrfs_submit_direct_hook() 8239 bvec->bv_offset) < bvec->bv_len) { btrfs_submit_direct_hook() 8279 submit_len += bvec->bv_len; btrfs_submit_direct_hook() 8281 bvec++; btrfs_submit_direct_hook()
|
H A D | disk-io.c | 877 struct bio_vec *bvec; btree_csum_one_bio() local 881 bio_for_each_segment_all(bvec, bio, i) { bio_for_each_segment_all() 882 root = BTRFS_I(bvec->bv_page->mapping->host)->root; bio_for_each_segment_all() 883 ret = csum_dirty_buffer(root->fs_info, bvec->bv_page); bio_for_each_segment_all()
|
/linux-4.4.14/block/ |
H A D | bounce.c | 129 struct bio_vec *bvec, *org_vec; bounce_end_io() local 136 bio_for_each_segment_all(bvec, bio, i) { bio_for_each_segment_all() 139 if (bvec->bv_page == org_vec->bv_page) bio_for_each_segment_all() 142 dec_zone_page_state(bvec->bv_page, NR_BOUNCE); bio_for_each_segment_all() 143 mempool_free(bvec->bv_page, pool); bio_for_each_segment_all()
|
H A D | bio.c | 715 struct bio_vec *bvec; bio_add_pc_page() local 756 bvec = &bio->bi_io_vec[bio->bi_vcnt]; bio_add_pc_page() 757 bvec->bv_page = page; bio_add_pc_page() 758 bvec->bv_len = len; bio_add_pc_page() 759 bvec->bv_offset = offset; bio_add_pc_page() 779 if (bio->bi_vcnt > 1 && (BIOVEC_PHYS_MERGEABLE(bvec-1, bvec))) bio_add_pc_page() 786 bvec->bv_page = NULL; bio_add_pc_page() 787 bvec->bv_len = 0; bio_add_pc_page() 788 bvec->bv_offset = 0; bio_add_pc_page() 889 * complete doesn't align with a bvec boundary, then bv_len and bv_offset will 890 * be updated on the last bvec as well. 904 * bio_alloc_pages - allocates a single page for each bvec in a bio 1018 struct bio_vec *bvec; bio_copy_from_iter() local 1020 bio_for_each_segment_all(bvec, bio, i) { bio_for_each_segment_all() 1023 ret = copy_page_from_iter(bvec->bv_page, bio_for_each_segment_all() 1024 bvec->bv_offset, bio_for_each_segment_all() 1025 bvec->bv_len, bio_for_each_segment_all() 1031 if (ret < bvec->bv_len) bio_for_each_segment_all() 1049 struct bio_vec *bvec; bio_copy_to_iter() local 1051 bio_for_each_segment_all(bvec, bio, i) { bio_for_each_segment_all() 1054 ret = copy_page_to_iter(bvec->bv_page, bio_for_each_segment_all() 1055 bvec->bv_offset, bio_for_each_segment_all() 1056 bvec->bv_len, bio_for_each_segment_all() 1062 if (ret < bvec->bv_len) bio_for_each_segment_all() 1071 struct bio_vec *bvec; bio_free_pages() local 1074 bio_for_each_segment_all(bvec, bio, i) bio_free_pages() 1075 __free_page(bvec->bv_page); bio_free_pages() 1372 struct bio_vec *bvec; __bio_unmap_user() local 1378 bio_for_each_segment_all(bvec, bio, i) { bio_for_each_segment_all() 1380 set_page_dirty_lock(bvec->bv_page); bio_for_each_segment_all() 1382 page_cache_release(bvec->bv_page); bio_for_each_segment_all() 1469 struct bio_vec *bvec; bio_copy_kern_endio_read() local 1472 bio_for_each_segment_all(bvec, bio, i) { bio_for_each_segment_all() 1473 memcpy(p, page_address(bvec->bv_page), bvec->bv_len); bio_for_each_segment_all() 1474 p += bvec->bv_len; bio_for_each_segment_all() 1581 struct bio_vec *bvec; bio_set_pages_dirty() local 1584 bio_for_each_segment_all(bvec, bio, i) { bio_for_each_segment_all() 1585 struct page *page = bvec->bv_page; bio_for_each_segment_all() 1594 struct bio_vec *bvec; bio_release_pages() local 1597 bio_for_each_segment_all(bvec, bio, i) { bio_for_each_segment_all() 1598 struct page *page = bvec->bv_page; bio_for_each_segment_all() 1647 struct bio_vec *bvec; bio_check_pages_dirty() local 1651 bio_for_each_segment_all(bvec, bio, i) { bio_for_each_segment_all() 1652 struct page *page = bvec->bv_page; bio_for_each_segment_all() 1656 bvec->bv_page = NULL; bio_for_each_segment_all() 1706 struct bio_vec bvec; bio_flush_dcache_pages() local 1709 bio_for_each_segment(bvec, bi, iter) bio_flush_dcache_pages() 1710 flush_dcache_page(bvec.bv_page); bio_flush_dcache_pages()
|
H A D | blk-merge.c | 116 /* Make this single bvec as the 1st segment */ bio_for_each_segment() 336 __blk_segment_map_sg(struct request_queue *q, struct bio_vec *bvec, __blk_segment_map_sg() argument 341 int nbytes = bvec->bv_len; __blk_segment_map_sg() 347 if (!BIOVEC_PHYS_MERGEABLE(bvprv, bvec)) __blk_segment_map_sg() 349 if (!BIOVEC_SEG_BOUNDARY(q, bvprv, bvec)) __blk_segment_map_sg() 372 sg_set_page(*sg, bvec->bv_page, nbytes, bvec->bv_offset); __blk_segment_map_sg() 375 *bvprv = *bvec; __blk_segment_map_sg() 382 struct bio_vec bvec, bvprv = { NULL }; __blk_bios_map_sg() local 407 bvec = bio_iovec(bio); __blk_bios_map_sg() 408 sg_set_page(*sg, bvec.bv_page, bvec.bv_len, bvec.bv_offset); __blk_bios_map_sg() 413 bio_for_each_segment(bvec, bio, iter) __blk_bios_map_sg() 414 __blk_segment_map_sg(q, &bvec, sglist, &bvprv, sg, __blk_bios_map_sg()
|
H A D | blk-core.c | 2993 struct bio_vec bvec; rq_flush_dcache_pages() local 2995 rq_for_each_segment(bvec, rq, iter) rq_flush_dcache_pages() 2996 flush_dcache_page(bvec.bv_page); rq_flush_dcache_pages()
|
/linux-4.4.14/fs/9p/ |
H A D | vfs_addr.c | 55 struct bio_vec bvec = {.bv_page = page, .bv_len = PAGE_SIZE}; v9fs_fid_readpage() local 67 iov_iter_bvec(&to, ITER_BVEC | READ, &bvec, 1, PAGE_SIZE); v9fs_fid_readpage() 166 struct bio_vec bvec; v9fs_vfs_writepage_locked() local 174 bvec.bv_page = page; v9fs_vfs_writepage_locked() 175 bvec.bv_offset = 0; v9fs_vfs_writepage_locked() 176 bvec.bv_len = len; v9fs_vfs_writepage_locked() 177 iov_iter_bvec(&from, ITER_BVEC | WRITE, &bvec, 1, len); v9fs_vfs_writepage_locked()
|
/linux-4.4.14/lib/ |
H A D | iov_iter.c | 61 __p = i->bvec; \ 87 const struct bio_vec *bvec; \ 89 iterate_bvec(i, n, v, bvec, skip, (B)) \ 104 const struct bio_vec *bvec; \ 106 iterate_bvec(i, n, v, bvec, skip, (B)) \ 107 if (skip == bvec->bv_len) { \ 108 bvec++; \ 111 i->nr_segs -= bvec - i->bvec; \ 112 i->bvec = bvec; \ 523 return min(i->count, i->bvec->bv_len - i->iov_offset); iov_iter_single_seg_count() 543 const struct bio_vec *bvec, unsigned long nr_segs, iov_iter_bvec() 548 i->bvec = bvec; iov_iter_bvec() 785 return new->bvec = kmemdup(new->bvec, dup_iter() 542 iov_iter_bvec(struct iov_iter *i, int direction, const struct bio_vec *bvec, unsigned long nr_segs, size_t count) iov_iter_bvec() argument
|
/linux-4.4.14/drivers/target/ |
H A D | target_core_file.c | 255 struct bio_vec *bvec; fd_do_rw() local 260 bvec = kcalloc(sgl_nents, sizeof(struct bio_vec), GFP_KERNEL); fd_do_rw() 261 if (!bvec) { fd_do_rw() 267 bvec[i].bv_page = sg_page(sg); for_each_sg() 268 bvec[i].bv_len = sg->length; for_each_sg() 269 bvec[i].bv_offset = sg->offset; for_each_sg() 274 iov_iter_bvec(&iter, ITER_BVEC, bvec, sgl_nents, len); 280 kfree(bvec); 364 struct bio_vec *bvec; fd_execute_write_same() local 388 bvec = kcalloc(nolb, sizeof(struct bio_vec), GFP_KERNEL); fd_execute_write_same() 389 if (!bvec) fd_execute_write_same() 393 bvec[i].bv_page = sg_page(&cmd->t_data_sg[0]); fd_execute_write_same() 394 bvec[i].bv_len = cmd->t_data_sg[0].length; fd_execute_write_same() 395 bvec[i].bv_offset = cmd->t_data_sg[0].offset; fd_execute_write_same() 400 iov_iter_bvec(&iter, ITER_BVEC, bvec, nolb, len); fd_execute_write_same() 403 kfree(bvec); fd_execute_write_same()
|
/linux-4.4.14/arch/m68k/emu/ |
H A D | nfblock.c | 65 struct bio_vec bvec; nfhd_make_request() local 72 bio_for_each_segment(bvec, bio, iter) { bio_for_each_segment() 73 len = bvec.bv_len; bio_for_each_segment() 76 bvec_to_phys(&bvec)); bio_for_each_segment()
|
/linux-4.4.14/drivers/block/ |
H A D | nbd.c | 224 static inline int sock_send_bvec(struct nbd_device *nbd, struct bio_vec *bvec, sock_send_bvec() argument 228 void *kaddr = kmap(bvec->bv_page); sock_send_bvec() 229 result = sock_xmit(nbd, 1, kaddr + bvec->bv_offset, sock_send_bvec() 230 bvec->bv_len, flags); sock_send_bvec() 231 kunmap(bvec->bv_page); sock_send_bvec() 276 struct bio_vec bvec; nbd_send_req() local 281 rq_for_each_segment(bvec, req, iter) { rq_for_each_segment() 283 if (!rq_iter_last(bvec, iter)) rq_for_each_segment() 286 req, bvec.bv_len); rq_for_each_segment() 287 result = sock_send_bvec(nbd, &bvec, flags); rq_for_each_segment() 322 static inline int sock_recv_bvec(struct nbd_device *nbd, struct bio_vec *bvec) sock_recv_bvec() argument 325 void *kaddr = kmap(bvec->bv_page); sock_recv_bvec() 326 result = sock_xmit(nbd, 0, kaddr + bvec->bv_offset, bvec->bv_len, sock_recv_bvec() 328 kunmap(bvec->bv_page); sock_recv_bvec() 374 struct bio_vec bvec; nbd_read_stat() local 376 rq_for_each_segment(bvec, req, iter) { rq_for_each_segment() 377 result = sock_recv_bvec(nbd, &bvec); rq_for_each_segment() 385 req, bvec.bv_len); rq_for_each_segment()
|
H A D | loop.c | 261 static int lo_write_bvec(struct file *file, struct bio_vec *bvec, loff_t *ppos) lo_write_bvec() argument 266 iov_iter_bvec(&i, ITER_BVEC, bvec, 1, bvec->bv_len); lo_write_bvec() 272 if (likely(bw == bvec->bv_len)) lo_write_bvec() 277 (unsigned long long)*ppos, bvec->bv_len); lo_write_bvec() 286 struct bio_vec bvec; lo_write_simple() local 290 rq_for_each_segment(bvec, rq, iter) { rq_for_each_segment() 291 ret = lo_write_bvec(lo->lo_backing_file, &bvec, &pos); rq_for_each_segment() 308 struct bio_vec bvec, b; lo_write_transfer() local 317 rq_for_each_segment(bvec, rq, iter) { rq_for_each_segment() 318 ret = lo_do_transfer(lo, WRITE, page, 0, bvec.bv_page, rq_for_each_segment() 319 bvec.bv_offset, bvec.bv_len, pos >> 9); rq_for_each_segment() 325 b.bv_len = bvec.bv_len; rq_for_each_segment() 338 struct bio_vec bvec; lo_read_simple() local 343 rq_for_each_segment(bvec, rq, iter) { rq_for_each_segment() 344 iov_iter_bvec(&i, ITER_BVEC, &bvec, 1, bvec.bv_len); rq_for_each_segment() 349 flush_dcache_page(bvec.bv_page); rq_for_each_segment() 351 if (len != bvec.bv_len) { rq_for_each_segment() 367 struct bio_vec bvec, b; lo_read_transfer() local 378 rq_for_each_segment(bvec, rq, iter) { rq_for_each_segment() 383 b.bv_len = bvec.bv_len; rq_for_each_segment() 392 ret = lo_do_transfer(lo, READ, page, 0, bvec.bv_page, rq_for_each_segment() 393 bvec.bv_offset, len, offset >> 9); rq_for_each_segment() 397 flush_dcache_page(bvec.bv_page); rq_for_each_segment() 399 if (len != bvec.bv_len) { rq_for_each_segment() 480 struct bio_vec *bvec; lo_rw_aio() local 488 bvec = __bvec_iter_bvec(bio->bi_io_vec, bio->bi_iter); lo_rw_aio() 489 iov_iter_bvec(&iter, ITER_BVEC | rw, bvec, lo_rw_aio() 492 * This bio may be started from the middle of the 'bvec' lo_rw_aio() 493 * because of bio splitting, so offset from the bvec must lo_rw_aio()
|
H A D | brd.c | 297 * Process a single bvec of a bio. 331 struct bio_vec bvec; brd_make_request() local 351 bio_for_each_segment(bvec, bio, iter) { bio_for_each_segment() 352 unsigned int len = bvec.bv_len; bio_for_each_segment() 355 err = brd_do_bvec(brd, bvec.bv_page, len, bio_for_each_segment() 356 bvec.bv_offset, rw, sector); bio_for_each_segment()
|
H A D | ps3disk.c | 97 struct bio_vec bvec; ps3disk_scatter_gather() local 102 rq_for_each_segment(bvec, req, iter) { rq_for_each_segment() 108 size = bvec.bv_len; rq_for_each_segment() 109 buf = bvec_kmap_irq(&bvec, &flags); rq_for_each_segment() 115 flush_kernel_dcache_page(bvec.bv_page); rq_for_each_segment()
|
H A D | ps3vram.c | 558 struct bio_vec bvec; ps3vram_do_bio() local 562 bio_for_each_segment(bvec, bio, iter) { bio_for_each_segment() 564 char *ptr = page_address(bvec.bv_page) + bvec.bv_offset; bio_for_each_segment() 565 size_t len = bvec.bv_len, retlen; bio_for_each_segment()
|
H A D | pktcdvd.c | 954 static void pkt_make_local_copy(struct packet_data *pkt, struct bio_vec *bvec) pkt_make_local_copy() argument 962 if (bvec[f].bv_page != pkt->pages[p]) { pkt_make_local_copy() 963 void *vfrom = kmap_atomic(bvec[f].bv_page) + bvec[f].bv_offset; pkt_make_local_copy() 967 bvec[f].bv_page = pkt->pages[p]; pkt_make_local_copy() 968 bvec[f].bv_offset = offs; pkt_make_local_copy() 970 BUG_ON(bvec[f].bv_offset != offs); pkt_make_local_copy() 1301 struct bio_vec *bvec = pkt->w_bio->bi_io_vec; pkt_start_write() local 1311 bvec[f].bv_page = pkt->pages[(f * CD_FRAMESIZE) / PAGE_SIZE]; pkt_start_write() 1312 bvec[f].bv_offset = (f * CD_FRAMESIZE) % PAGE_SIZE; pkt_start_write() 1313 if (!bio_add_page(pkt->w_bio, bvec[f].bv_page, CD_FRAMESIZE, bvec[f].bv_offset)) pkt_start_write() 1319 * Fill-in bvec with data from orig_bios. pkt_start_write() 1331 pkt_make_local_copy(pkt, bvec); pkt_start_write()
|
/linux-4.4.14/drivers/nvdimm/ |
H A D | blk.c | 133 * split the bvec into sectors, as this would cause unnecessary nd_blk_do_bvec() 172 struct bio_vec bvec; nd_blk_make_request() local 191 bio_for_each_segment(bvec, bio, iter) { bio_for_each_segment() 192 unsigned int len = bvec.bv_len; bio_for_each_segment() 195 err = nd_blk_do_bvec(blk_dev, bip, bvec.bv_page, len, bio_for_each_segment() 196 bvec.bv_offset, rw, iter.bi_sector); bio_for_each_segment()
|
H A D | pmem.c | 71 struct bio_vec bvec; pmem_make_request() local 77 bio_for_each_segment(bvec, bio, iter) pmem_make_request() 78 pmem_do_bvec(pmem, bvec.bv_page, bvec.bv_len, bvec.bv_offset, pmem_make_request()
|
H A D | btt.c | 1159 struct bio_vec bvec; btt_make_request() local 1176 bio_for_each_segment(bvec, bio, iter) { bio_for_each_segment() 1177 unsigned int len = bvec.bv_len; bio_for_each_segment() 1185 err = btt_do_bvec(btt, bip, bvec.bv_page, len, bvec.bv_offset, bio_for_each_segment()
|
/linux-4.4.14/fs/logfs/ |
H A D | dev_bdev.c | 58 struct bio_vec *bvec; writeseg_end_io() local 65 bio_for_each_segment_all(bvec, bio, i) { bio_for_each_segment_all() 66 end_page_writeback(bvec->bv_page); bio_for_each_segment_all() 67 page_cache_release(bvec->bv_page); bio_for_each_segment_all()
|
/linux-4.4.14/drivers/md/ |
H A D | dm-io.c | 202 * Functions for getting the pages from a bvec. 207 struct bio_vec *bvec = dp->context_ptr; bio_get_page() local 208 *p = bvec->bv_page; bio_get_page() 209 *len = bvec->bv_len - dp->context_u; bio_get_page() 210 *offset = bvec->bv_offset + dp->context_u; bio_get_page() 215 struct bio_vec *bvec = dp->context_ptr; bio_next_page() local 216 dp->context_ptr = bvec + 1; bio_next_page()
|
H A D | dm-log-writes.c | 152 struct bio_vec *bvec; log_end_io() local 164 bio_for_each_segment_all(bvec, bio, i) log_end_io() 165 __free_page(bvec->bv_page); log_end_io() 276 * for every bvec in the original bio for simplicity sake. log_one_block()
|
H A D | raid1.c | 973 struct bio_vec *bvec; alloc_behind_pages() local 979 bio_for_each_segment_all(bvec, bio, i) { bio_for_each_segment_all() 980 bvecs[i] = *bvec; bio_for_each_segment_all() 984 memcpy(kmap(bvecs[i].bv_page) + bvec->bv_offset, bio_for_each_segment_all() 985 kmap(bvec->bv_page) + bvec->bv_offset, bvec->bv_len); bio_for_each_segment_all() 987 kunmap(bvec->bv_page); bio_for_each_segment_all() 1361 struct bio_vec *bvec; make_request() local 1367 bio_for_each_segment_all(bvec, mbio, j) make_request() 1368 bvec->bv_page = r1_bio->behind_bvecs[j].bv_page; make_request()
|
H A D | dm-crypt.c | 995 struct bio_vec *bvec; crypt_alloc_buffer() local 1020 bvec = &clone->bi_io_vec[clone->bi_vcnt++]; crypt_alloc_buffer() 1021 bvec->bv_page = page; crypt_alloc_buffer() 1022 bvec->bv_len = len; crypt_alloc_buffer() 1023 bvec->bv_offset = 0; crypt_alloc_buffer()
|
H A D | dm-bufio.c | 52 * The number of bvec entries that are embedded directly in the buffer.
|
H A D | raid10.c | 4496 struct bio_vec *bvec = r10_bio->master_bio->bi_io_vec; handle_reshape_read_error() local 4522 bvec[idx].bv_page, handle_reshape_read_error()
|
/linux-4.4.14/drivers/s390/block/ |
H A D | xpram.c | 187 struct bio_vec bvec; xpram_make_request() local 205 bio_for_each_segment(bvec, bio, iter) { bio_for_each_segment() 207 kmap(bvec.bv_page) + bvec.bv_offset; bio_for_each_segment() 208 bytes = bvec.bv_len; bio_for_each_segment()
|
H A D | dcssblk.c | 823 struct bio_vec bvec; dcssblk_make_request() local 861 bio_for_each_segment(bvec, bio, iter) { bio_for_each_segment() 863 page_address(bvec.bv_page) + bvec.bv_offset; bio_for_each_segment() 865 if (unlikely((page_addr & 4095) != 0) || (bvec.bv_len & 4095) != 0) bio_for_each_segment() 870 bvec.bv_len); bio_for_each_segment() 873 bvec.bv_len); bio_for_each_segment() 875 bytes_done += bvec.bv_len; bio_for_each_segment()
|
/linux-4.4.14/fs/gfs2/ |
H A D | lops.c | 163 * @bvec: The bio_vec 172 static void gfs2_end_log_write_bh(struct gfs2_sbd *sdp, struct bio_vec *bvec, gfs2_end_log_write_bh() argument 176 struct page *page = bvec->bv_page; gfs2_end_log_write_bh() 180 size = bvec->bv_len; gfs2_end_log_write_bh() 181 while (bh_offset(bh) < bvec->bv_offset) gfs2_end_log_write_bh() 208 struct bio_vec *bvec; gfs2_end_log_write() local 217 bio_for_each_segment_all(bvec, bio, i) { bio_for_each_segment_all() 218 page = bvec->bv_page; bio_for_each_segment_all() 220 gfs2_end_log_write_bh(sdp, bvec, bio->bi_error); bio_for_each_segment_all()
|
/linux-4.4.14/arch/xtensa/platforms/iss/ |
H A D | simdisk.c | 107 struct bio_vec bvec; simdisk_make_request() local 111 bio_for_each_segment(bvec, bio, iter) { bio_for_each_segment() 113 unsigned len = bvec.bv_len >> SECTOR_SHIFT; bio_for_each_segment()
|
/linux-4.4.14/fs/ext4/ |
H A D | page-io.c | 64 struct bio_vec *bvec; ext4_finish_bio() local 66 bio_for_each_segment_all(bvec, bio, i) { bio_for_each_segment_all() 67 struct page *page = bvec->bv_page; bio_for_each_segment_all() 73 unsigned bio_start = bvec->bv_offset; bio_for_each_segment_all() 74 unsigned bio_end = bio_start + bvec->bv_len; bio_for_each_segment_all()
|
/linux-4.4.14/drivers/staging/lustre/lustre/llite/ |
H A D | lloop.c | 195 struct bio_vec bvec; do_bio_lustrebacked() local 220 bio_for_each_segment(bvec, bio, iter) { bio_for_each_segment() 221 BUG_ON(bvec.bv_offset != 0); bio_for_each_segment() 222 BUG_ON(bvec.bv_len != PAGE_CACHE_SIZE); bio_for_each_segment() 224 pages[page_count] = bvec.bv_page; bio_for_each_segment() 227 offset += bvec.bv_len; bio_for_each_segment()
|
/linux-4.4.14/drivers/scsi/mpt3sas/ |
H A D | mpt3sas_transport.c | 1923 struct bio_vec bvec; _transport_smp_handler() local 1964 bio_for_each_segment(bvec, req->bio, iter) { _transport_smp_handler() 1966 page_address(bvec.bv_page) + bvec.bv_offset, _transport_smp_handler() 1967 bvec.bv_len); _transport_smp_handler() 1968 offset += bvec.bv_len; _transport_smp_handler() 2093 bio_for_each_segment(bvec, rsp->bio, iter) { _transport_smp_handler() 2094 if (bytes_to_copy <= bvec.bv_len) { _transport_smp_handler() 2095 memcpy(page_address(bvec.bv_page) + _transport_smp_handler() 2096 bvec.bv_offset, pci_addr_in + _transport_smp_handler() 2100 memcpy(page_address(bvec.bv_page) + _transport_smp_handler() 2101 bvec.bv_offset, pci_addr_in + _transport_smp_handler() 2102 offset, bvec.bv_len); _transport_smp_handler() 2103 bytes_to_copy -= bvec.bv_len; _transport_smp_handler() 2105 offset += bvec.bv_len; _transport_smp_handler()
|
/linux-4.4.14/arch/x86/include/asm/ |
H A D | pmem.h | 92 * iterators, so for other types (bvec & kvec) we must do a cache write-back.
|
/linux-4.4.14/drivers/block/rsxx/ |
H A D | dma.c | 687 struct bio_vec bvec; rsxx_dma_queue_bio() local 726 bio_for_each_segment(bvec, bio, iter) { bio_for_each_segment() 727 bv_len = bvec.bv_len; bio_for_each_segment() 728 bv_off = bvec.bv_offset; bio_for_each_segment() 740 laddr, bvec.bv_page, bio_for_each_segment()
|
/linux-4.4.14/fs/f2fs/ |
H A D | data.c | 32 struct bio_vec *bvec; f2fs_read_end_io() local 44 bio_for_each_segment_all(bvec, bio, i) { bio_for_each_segment_all() 45 struct page *page = bvec->bv_page; bio_for_each_segment_all() 61 struct bio_vec *bvec; f2fs_write_end_io() local 64 bio_for_each_segment_all(bvec, bio, i) { bio_for_each_segment_all() 65 struct page *page = bvec->bv_page; bio_for_each_segment_all()
|
H A D | segment.c | 1435 struct bio_vec *bvec; is_merged_page() local 1445 bio_for_each_segment_all(bvec, io->bio, i) { is_merged_page() 1447 if (bvec->bv_page->mapping) { is_merged_page() 1448 target = bvec->bv_page; is_merged_page() 1454 bvec->bv_page); is_merged_page()
|
/linux-4.4.14/drivers/block/drbd/ |
H A D | drbd_main.c | 1550 struct bio_vec bvec; _drbd_send_bio() local 1554 bio_for_each_segment(bvec, bio, iter) { bio_for_each_segment() 1557 err = _drbd_no_send_page(peer_device, bvec.bv_page, bio_for_each_segment() 1558 bvec.bv_offset, bvec.bv_len, bio_for_each_segment() 1559 bio_iter_last(bvec, iter) bio_for_each_segment() 1569 struct bio_vec bvec; _drbd_send_zc_bio() local 1573 bio_for_each_segment(bvec, bio, iter) { bio_for_each_segment() 1576 err = _drbd_send_page(peer_device, bvec.bv_page, bio_for_each_segment() 1577 bvec.bv_offset, bvec.bv_len, bio_for_each_segment() 1578 bio_iter_last(bvec, iter) ? 0 : MSG_MORE); bio_for_each_segment()
|
H A D | drbd_worker.c | 303 struct bio_vec bvec; drbd_csum_bio() local 312 bio_for_each_segment(bvec, bio, iter) { bio_for_each_segment() 313 sg_set_page(&sg, bvec.bv_page, bvec.bv_len, bvec.bv_offset); bio_for_each_segment()
|
H A D | drbd_receiver.c | 1709 struct bio_vec bvec; recv_dless_read() local 1732 bio_for_each_segment(bvec, bio, iter) { bio_for_each_segment() 1733 void *mapped = kmap(bvec.bv_page) + bvec.bv_offset; bio_for_each_segment() 1734 expect = min_t(int, data_size, bvec.bv_len); bio_for_each_segment() 1736 kunmap(bvec.bv_page); bio_for_each_segment()
|
/linux-4.4.14/fs/ |
H A D | direct-io.c | 467 struct bio_vec *bvec; dio_bio_complete() local 478 bio_for_each_segment_all(bvec, bio, i) { bio_for_each_segment_all() 479 struct page *page = bvec->bv_page; bio_for_each_segment_all()
|
H A D | buffer.c | 2966 struct bio_vec *bvec = &bio->bi_io_vec[bio->bi_vcnt - 1]; guard_bio_eod() local 2990 bvec->bv_len -= truncated_bytes; guard_bio_eod() 2994 zero_user(bvec->bv_page, bvec->bv_offset + bvec->bv_len, guard_bio_eod()
|