/Linux-v4.19/include/linux/ |
D | bvec.h | 53 #define __bvec_iter_bvec(bvec, iter) (&(bvec)[(iter).bi_idx]) argument 55 #define bvec_iter_page(bvec, iter) \ argument 56 (__bvec_iter_bvec((bvec), (iter))->bv_page) 58 #define bvec_iter_len(bvec, iter) \ argument 60 __bvec_iter_bvec((bvec), (iter))->bv_len - (iter).bi_bvec_done) 62 #define bvec_iter_offset(bvec, iter) \ argument 63 (__bvec_iter_bvec((bvec), (iter))->bv_offset + (iter).bi_bvec_done) 65 #define bvec_iter_bvec(bvec, iter) \ argument 67 .bv_page = bvec_iter_page((bvec), (iter)), \ 68 .bv_len = bvec_iter_len((bvec), (iter)), \ [all …]
|
D | bio.h | 205 #define bio_iter_last(bvec, iter) ((iter).bi_size == (bvec).bv_len) argument 574 static inline char *bvec_kmap_irq(struct bio_vec *bvec, unsigned long *flags) in bvec_kmap_irq() argument 583 addr = (unsigned long) kmap_atomic(bvec->bv_page); in bvec_kmap_irq() 587 return (char *) addr + bvec->bv_offset; in bvec_kmap_irq() 599 static inline char *bvec_kmap_irq(struct bio_vec *bvec, unsigned long *flags) in bvec_kmap_irq() argument 601 return page_address(bvec->bv_page) + bvec->bv_offset; in bvec_kmap_irq()
|
/Linux-v4.19/block/ |
D | bio.c | 668 struct bio_vec *bvec; in bio_add_pc_page() local 709 bvec = &bio->bi_io_vec[bio->bi_vcnt]; in bio_add_pc_page() 710 bvec->bv_page = page; in bio_add_pc_page() 711 bvec->bv_len = len; in bio_add_pc_page() 712 bvec->bv_offset = offset; in bio_add_pc_page() 732 if (bio->bi_vcnt > 1 && (BIOVEC_PHYS_MERGEABLE(bvec-1, bvec))) in bio_add_pc_page() 739 bvec->bv_page = NULL; in bio_add_pc_page() 740 bvec->bv_len = 0; in bio_add_pc_page() 741 bvec->bv_offset = 0; in bio_add_pc_page() 1075 struct bio_vec *bvec; in bio_copy_from_iter() local [all …]
|
D | bounce.c | 146 struct bio_vec *bvec, orig_vec; in bounce_end_io() local 153 bio_for_each_segment_all(bvec, bio, i) { in bounce_end_io() 155 if (bvec->bv_page != orig_vec.bv_page) { in bounce_end_io() 156 dec_zone_page_state(bvec->bv_page, NR_BOUNCE); in bounce_end_io() 157 mempool_free(bvec->bv_page, pool); in bounce_end_io()
|
D | blk-merge.c | 366 __blk_segment_map_sg(struct request_queue *q, struct bio_vec *bvec, in __blk_segment_map_sg() argument 371 int nbytes = bvec->bv_len; in __blk_segment_map_sg() 377 if (!BIOVEC_PHYS_MERGEABLE(bvprv, bvec)) in __blk_segment_map_sg() 379 if (!BIOVEC_SEG_BOUNDARY(q, bvprv, bvec)) in __blk_segment_map_sg() 402 sg_set_page(*sg, bvec->bv_page, nbytes, bvec->bv_offset); in __blk_segment_map_sg() 405 *bvprv = *bvec; in __blk_segment_map_sg() 420 struct bio_vec bvec, bvprv = { NULL }; in __blk_bios_map_sg() local 425 bio_for_each_segment(bvec, bio, iter) in __blk_bios_map_sg() 426 __blk_segment_map_sg(q, &bvec, sglist, &bvprv, sg, in __blk_bios_map_sg()
|
/Linux-v4.19/drivers/block/zram/ |
D | zram_drv.c | 137 static inline bool is_partial_io(struct bio_vec *bvec) in is_partial_io() argument 139 return bvec->bv_len != PAGE_SIZE; in is_partial_io() 142 static inline bool is_partial_io(struct bio_vec *bvec) in is_partial_io() argument 172 static void update_position(u32 *index, int *offset, struct bio_vec *bvec) in update_position() argument 174 *index += (*offset + bvec->bv_len) / PAGE_SIZE; in update_position() 175 *offset = (*offset + bvec->bv_len) % PAGE_SIZE; in update_position() 484 static int read_from_bdev_async(struct zram *zram, struct bio_vec *bvec, in read_from_bdev_async() argument 495 if (!bio_add_page(bio, bvec->bv_page, bvec->bv_len, bvec->bv_offset)) { in read_from_bdev_async() 522 struct bio_vec bvec; in zram_sync_read() local 528 read_from_bdev_async(zram, &bvec, entry, bio); in zram_sync_read() [all …]
|
/Linux-v4.19/drivers/target/ |
D | target_core_file.c | 284 struct bio_vec *bvec; in fd_execute_rw_aio() local 292 bvec = kcalloc(sgl_nents, sizeof(struct bio_vec), GFP_KERNEL); in fd_execute_rw_aio() 293 if (!bvec) { in fd_execute_rw_aio() 299 bvec[i].bv_page = sg_page(sg); in fd_execute_rw_aio() 300 bvec[i].bv_len = sg->length; in fd_execute_rw_aio() 301 bvec[i].bv_offset = sg->offset; in fd_execute_rw_aio() 306 iov_iter_bvec(&iter, ITER_BVEC | is_write, bvec, sgl_nents, len); in fd_execute_rw_aio() 323 kfree(bvec); in fd_execute_rw_aio() 337 struct bio_vec *bvec; in fd_do_rw() local 342 bvec = kcalloc(sgl_nents, sizeof(struct bio_vec), GFP_KERNEL); in fd_do_rw() [all …]
|
/Linux-v4.19/drivers/nvme/target/ |
D | io-cmd-file.c | 104 iov_iter_bvec(&iter, ITER_BVEC | rw, req->f.bvec, nr_segs, count); in nvmet_file_submit_bvec() 122 if (req->f.bvec != req->inline_bvec) { in nvmet_file_io_done() 124 kfree(req->f.bvec); in nvmet_file_io_done() 126 mempool_free(req->f.bvec, req->ns->bvec_pool); in nvmet_file_io_done() 155 req->f.bvec = kmalloc_array(nr_bvec, sizeof(struct bio_vec), in nvmet_file_execute_rw() 158 req->f.bvec = req->inline_bvec; in nvmet_file_execute_rw() 161 if (unlikely(!req->f.bvec)) { in nvmet_file_execute_rw() 163 req->f.bvec = mempool_alloc(req->ns->bvec_pool, GFP_KERNEL); in nvmet_file_execute_rw() 171 nvmet_file_init_bvec(&req->f.bvec[bv_cnt], &sg_pg_iter); in nvmet_file_execute_rw() 172 len += req->f.bvec[bv_cnt].bv_len; in nvmet_file_execute_rw() [all …]
|
/Linux-v4.19/fs/9p/ |
D | vfs_addr.c | 56 struct bio_vec bvec = {.bv_page = page, .bv_len = PAGE_SIZE}; in v9fs_fid_readpage() local 68 iov_iter_bvec(&to, ITER_BVEC | READ, &bvec, 1, PAGE_SIZE); in v9fs_fid_readpage() 167 struct bio_vec bvec; in v9fs_vfs_writepage_locked() local 175 bvec.bv_page = page; in v9fs_vfs_writepage_locked() 176 bvec.bv_offset = 0; in v9fs_vfs_writepage_locked() 177 bvec.bv_len = len; in v9fs_vfs_writepage_locked() 178 iov_iter_bvec(&from, ITER_BVEC | WRITE, &bvec, 1, len); in v9fs_vfs_writepage_locked()
|
/Linux-v4.19/drivers/block/ |
D | loop.c | 266 static int lo_write_bvec(struct file *file, struct bio_vec *bvec, loff_t *ppos) in lo_write_bvec() argument 271 iov_iter_bvec(&i, ITER_BVEC | WRITE, bvec, 1, bvec->bv_len); in lo_write_bvec() 277 if (likely(bw == bvec->bv_len)) in lo_write_bvec() 282 (unsigned long long)*ppos, bvec->bv_len); in lo_write_bvec() 291 struct bio_vec bvec; in lo_write_simple() local 295 rq_for_each_segment(bvec, rq, iter) { in lo_write_simple() 296 ret = lo_write_bvec(lo->lo_backing_file, &bvec, &pos); in lo_write_simple() 313 struct bio_vec bvec, b; in lo_write_transfer() local 322 rq_for_each_segment(bvec, rq, iter) { in lo_write_transfer() 323 ret = lo_do_transfer(lo, WRITE, page, 0, bvec.bv_page, in lo_write_transfer() [all …]
|
D | null_blk_zoned.c | 55 struct bio_vec bvec; in null_zone_fill_bio() local 60 bio_for_each_segment(bvec, bio, iter) { in null_zone_fill_bio() 61 addr = kmap_atomic(bvec.bv_page); in null_zone_fill_bio() 63 zones_to_cpy = bvec.bv_len / sizeof(struct blk_zone); in null_zone_fill_bio()
|
D | brd.c | 286 struct bio_vec bvec; in brd_make_request() local 294 bio_for_each_segment(bvec, bio, iter) { in brd_make_request() 295 unsigned int len = bvec.bv_len; in brd_make_request() 298 err = brd_do_bvec(brd, bvec.bv_page, len, bvec.bv_offset, in brd_make_request()
|
/Linux-v4.19/arch/m68k/emu/ |
D | nfblock.c | 65 struct bio_vec bvec; in nfhd_make_request() local 72 bio_for_each_segment(bvec, bio, iter) { in nfhd_make_request() 73 len = bvec.bv_len; in nfhd_make_request() 76 bvec_to_phys(&bvec)); in nfhd_make_request()
|
/Linux-v4.19/drivers/s390/block/ |
D | xpram.c | 188 struct bio_vec bvec; in xpram_make_request() local 206 bio_for_each_segment(bvec, bio, iter) { in xpram_make_request() 208 kmap(bvec.bv_page) + bvec.bv_offset; in xpram_make_request() 209 bytes = bvec.bv_len; in xpram_make_request()
|
/Linux-v4.19/Documentation/block/ |
D | biovecs.txt | 20 bytes completed in the current bvec. 50 exactly one bvec at a time - for example, bio_copy_data() in fs/bio.c, 58 coding bvec iterators before, and having common implementation considerably 63 it somewhere else if there was an error) had to save the entire bvec array 66 * Biovecs can be shared between multiple bios - a bvec iter can represent an 74 bios with more than a single bvec! Now, we can efficiently split arbitrary 86 fine to _most_ devices, but since accessing the raw bvec array was the 88 since all drivers _must_ go through the bvec iterator - and have been
|
/Linux-v4.19/drivers/nvdimm/ |
D | blk.c | 179 struct bio_vec bvec; in nd_blk_make_request() local 190 bio_for_each_segment(bvec, bio, iter) { in nd_blk_make_request() 191 unsigned int len = bvec.bv_len; in nd_blk_make_request() 194 err = nsblk_do_bvec(nsblk, bip, bvec.bv_page, len, in nd_blk_make_request() 195 bvec.bv_offset, rw, iter.bi_sector); in nd_blk_make_request()
|
/Linux-v4.19/fs/btrfs/ |
D | file-item.c | 154 struct bio_vec bvec; in __btrfs_lookup_bio_sums() local 212 bio_for_each_segment(bvec, bio, iter) { in __btrfs_lookup_bio_sums() 213 page_bytes_left = bvec.bv_len; in __btrfs_lookup_bio_sums() 218 offset = page_offset(bvec.bv_page) + bvec.bv_offset; in __btrfs_lookup_bio_sums() 430 struct bio_vec bvec; in btrfs_csum_one_bio() local 454 bio_for_each_segment(bvec, bio, iter) { in btrfs_csum_one_bio() 456 offset = page_offset(bvec.bv_page) + bvec.bv_offset; in btrfs_csum_one_bio() 463 data = kmap_atomic(bvec.bv_page); in btrfs_csum_one_bio() 466 bvec.bv_len + fs_info->sectorsize in btrfs_csum_one_bio() 493 data = kmap_atomic(bvec.bv_page); in btrfs_csum_one_bio() [all …]
|
D | compression.c | 164 struct bio_vec *bvec; in end_compressed_bio_read() local 171 bio_for_each_segment_all(bvec, cb->orig_bio, i) in end_compressed_bio_read() 172 SetPageChecked(bvec->bv_page); in end_compressed_bio_read() 1133 struct bio_vec bvec = bio_iter_iovec(bio, bio->bi_iter); in btrfs_decompress_buf2page() local 1139 start_byte = page_offset(bvec.bv_page) - disk_start; in btrfs_decompress_buf2page() 1159 bytes = min_t(unsigned long, bvec.bv_len, in btrfs_decompress_buf2page() 1163 kaddr = kmap_atomic(bvec.bv_page); in btrfs_decompress_buf2page() 1164 memcpy(kaddr + bvec.bv_offset, buf + buf_offset, bytes); in btrfs_decompress_buf2page() 1166 flush_dcache_page(bvec.bv_page); in btrfs_decompress_buf2page() 1176 bvec = bio_iter_iovec(bio, bio->bi_iter); in btrfs_decompress_buf2page() [all …]
|
/Linux-v4.19/arch/xtensa/platforms/iss/ |
D | simdisk.c | 107 struct bio_vec bvec; in simdisk_make_request() local 111 bio_for_each_segment(bvec, bio, iter) { in simdisk_make_request() 112 char *buffer = kmap_atomic(bvec.bv_page) + bvec.bv_offset; in simdisk_make_request() 113 unsigned len = bvec.bv_len >> SECTOR_SHIFT; in simdisk_make_request()
|
/Linux-v4.19/fs/gfs2/ |
D | meta_io.c | 191 struct bio_vec *bvec; in gfs2_meta_read_endio() local 194 bio_for_each_segment_all(bvec, bio, i) { in gfs2_meta_read_endio() 195 struct page *page = bvec->bv_page; in gfs2_meta_read_endio() 197 unsigned int len = bvec->bv_len; in gfs2_meta_read_endio() 199 while (bh_offset(bh) < bvec->bv_offset) in gfs2_meta_read_endio()
|
D | lops.c | 171 static void gfs2_end_log_write_bh(struct gfs2_sbd *sdp, struct bio_vec *bvec, in gfs2_end_log_write_bh() argument 175 struct page *page = bvec->bv_page; in gfs2_end_log_write_bh() 179 size = bvec->bv_len; in gfs2_end_log_write_bh() 180 while (bh_offset(bh) < bvec->bv_offset) in gfs2_end_log_write_bh() 207 struct bio_vec *bvec; in gfs2_end_log_write() local 217 bio_for_each_segment_all(bvec, bio, i) { in gfs2_end_log_write() 218 page = bvec->bv_page; in gfs2_end_log_write() 220 gfs2_end_log_write_bh(sdp, bvec, bio->bi_status); in gfs2_end_log_write()
|
/Linux-v4.19/lib/ |
D | iov_iter.c | 68 for_each_bvec(__v, i->bvec, __bi, __start) { \ 100 const struct bio_vec *bvec = i->bvec; \ 104 i->bvec = __bvec_iter_bvec(i->bvec, __bi); \ 105 i->nr_segs -= i->bvec - bvec; \ 1020 const struct bio_vec *bvec = i->bvec; in iov_iter_revert() local 1022 size_t n = (--bvec)->bv_len; in iov_iter_revert() 1025 i->bvec = bvec; in iov_iter_revert() 1057 return min(i->count, i->bvec->bv_len - i->iov_offset); in iov_iter_single_seg_count() 1077 const struct bio_vec *bvec, unsigned long nr_segs, in iov_iter_bvec() argument 1082 i->bvec = bvec; in iov_iter_bvec() [all …]
|
/Linux-v4.19/fs/ext4/ |
D | page-io.c | 65 struct bio_vec *bvec; in ext4_finish_bio() local 67 bio_for_each_segment_all(bvec, bio, i) { in ext4_finish_bio() 68 struct page *page = bvec->bv_page; in ext4_finish_bio() 73 unsigned bio_start = bvec->bv_offset; in ext4_finish_bio() 74 unsigned bio_end = bio_start + bvec->bv_len; in ext4_finish_bio()
|
/Linux-v4.19/drivers/md/ |
D | dm-io.c | 211 struct bio_vec bvec = bvec_iter_bvec((struct bio_vec *)dp->context_ptr, in bio_get_page() local 214 *p = bvec.bv_page; in bio_get_page() 215 *len = bvec.bv_len; in bio_get_page() 216 *offset = bvec.bv_offset; in bio_get_page() 219 dp->context_bi.bi_sector = (sector_t)bvec.bv_len; in bio_get_page()
|
/Linux-v4.19/fs/xfs/ |
D | xfs_aops.c | 65 struct bio_vec *bvec, in xfs_finish_page_writeback() argument 68 struct iomap_page *iop = to_iomap_page(bvec->bv_page); in xfs_finish_page_writeback() 71 SetPageError(bvec->bv_page); in xfs_finish_page_writeback() 79 end_page_writeback(bvec->bv_page); in xfs_finish_page_writeback() 99 struct bio_vec *bvec; in xfs_destroy_ioend() local 112 bio_for_each_segment_all(bvec, bio, i) in xfs_destroy_ioend() 113 xfs_finish_page_writeback(inode, bvec, error); in xfs_destroy_ioend()
|