Home
last modified time | relevance | path

Searched refs:bvec (Results 1 – 25 of 80) sorted by relevance

1234

/Linux-v6.1/include/linux/
Dbvec.h59 #define __bvec_iter_bvec(bvec, iter) (&(bvec)[(iter).bi_idx]) argument
62 #define mp_bvec_iter_page(bvec, iter) \ argument
63 (__bvec_iter_bvec((bvec), (iter))->bv_page)
65 #define mp_bvec_iter_len(bvec, iter) \ argument
67 __bvec_iter_bvec((bvec), (iter))->bv_len - (iter).bi_bvec_done)
69 #define mp_bvec_iter_offset(bvec, iter) \ argument
70 (__bvec_iter_bvec((bvec), (iter))->bv_offset + (iter).bi_bvec_done)
72 #define mp_bvec_iter_page_idx(bvec, iter) \ argument
73 (mp_bvec_iter_offset((bvec), (iter)) / PAGE_SIZE)
75 #define mp_bvec_iter_bvec(bvec, iter) \ argument
[all …]
/Linux-v6.1/fs/cifs/
Dfscache.c146 struct bio_vec bvec[1]; in fscache_fallback_read_page() local
150 bvec[0].bv_page = page; in fscache_fallback_read_page()
151 bvec[0].bv_offset = 0; in fscache_fallback_read_page()
152 bvec[0].bv_len = PAGE_SIZE; in fscache_fallback_read_page()
153 iov_iter_bvec(&iter, READ, bvec, ARRAY_SIZE(bvec), PAGE_SIZE); in fscache_fallback_read_page()
174 struct bio_vec bvec[1]; in fscache_fallback_write_page() local
180 bvec[0].bv_page = page; in fscache_fallback_write_page()
181 bvec[0].bv_offset = 0; in fscache_fallback_write_page()
182 bvec[0].bv_len = PAGE_SIZE; in fscache_fallback_write_page()
183 iov_iter_bvec(&iter, WRITE, bvec, ARRAY_SIZE(bvec), PAGE_SIZE); in fscache_fallback_write_page()
/Linux-v6.1/fs/nfs/
Dfscache.c248 struct bio_vec bvec[1]; in fscache_fallback_read_page() local
252 bvec[0].bv_page = page; in fscache_fallback_read_page()
253 bvec[0].bv_offset = 0; in fscache_fallback_read_page()
254 bvec[0].bv_len = PAGE_SIZE; in fscache_fallback_read_page()
255 iov_iter_bvec(&iter, READ, bvec, ARRAY_SIZE(bvec), PAGE_SIZE); in fscache_fallback_read_page()
276 struct bio_vec bvec[1]; in fscache_fallback_write_page() local
282 bvec[0].bv_page = page; in fscache_fallback_write_page()
283 bvec[0].bv_offset = 0; in fscache_fallback_write_page()
284 bvec[0].bv_len = PAGE_SIZE; in fscache_fallback_write_page()
285 iov_iter_bvec(&iter, WRITE, bvec, ARRAY_SIZE(bvec), PAGE_SIZE); in fscache_fallback_write_page()
/Linux-v6.1/mm/
Dpage_io.c241 struct bio_vec bvec[SWAP_CLUSTER_MAX]; member
263 struct page *page = sio->bvec[0].bv_page; in sio_write_complete()
280 page = sio->bvec[p].bv_page; in sio_write_complete()
286 count_swpout_vm_event(sio->bvec[p].bv_page); in sio_write_complete()
290 end_page_writeback(sio->bvec[p].bv_page); in sio_write_complete()
321 sio->bvec[sio->pages].bv_page = page; in swap_writepage_fs()
322 sio->bvec[sio->pages].bv_len = thp_size(page); in swap_writepage_fs()
323 sio->bvec[sio->pages].bv_offset = 0; in swap_writepage_fs()
326 if (sio->pages == ARRAY_SIZE(sio->bvec) || !wbc->swap_plug) { in swap_writepage_fs()
379 iov_iter_bvec(&from, WRITE, sio->bvec, sio->pages, sio->len); in swap_write_unplug()
[all …]
/Linux-v6.1/drivers/block/zram/
Dzram_drv.c57 static int zram_bvec_read(struct zram *zram, struct bio_vec *bvec,
147 static inline bool is_partial_io(struct bio_vec *bvec) in is_partial_io() argument
149 return bvec->bv_len != PAGE_SIZE; in is_partial_io()
152 static inline bool is_partial_io(struct bio_vec *bvec) in is_partial_io() argument
182 static void update_position(u32 *index, int *offset, struct bio_vec *bvec) in update_position() argument
184 *index += (*offset + bvec->bv_len) / PAGE_SIZE; in update_position()
185 *offset = (*offset + bvec->bv_len) % PAGE_SIZE; in update_position()
605 static int read_from_bdev_async(struct zram *zram, struct bio_vec *bvec, in read_from_bdev_async() argument
616 if (!bio_add_page(bio, bvec->bv_page, bvec->bv_len, bvec->bv_offset)) { in read_from_bdev_async()
686 struct bio_vec bvec; in writeback_store() local
[all …]
/Linux-v6.1/fs/erofs/
Dzdata.c46 unsigned long base = (unsigned long)((struct z_erofs_bvset *)0)->bvec; in z_erofs_bvset_flip()
78 struct z_erofs_bvec *bvec, in z_erofs_bvec_enqueue() argument
92 iter->bvset->bvec[iter->cur++] = *bvec; in z_erofs_bvec_enqueue()
97 struct z_erofs_bvec *bvec, in z_erofs_bvec_dequeue() argument
104 *bvec = iter->bvset->bvec[iter->cur++]; in z_erofs_bvec_dequeue()
419 struct z_erofs_bvec *bvec) in z_erofs_try_inplace_io() argument
425 NULL, bvec->page)) { in z_erofs_try_inplace_io()
426 pcl->compressed_bvecs[fe->icur] = *bvec; in z_erofs_try_inplace_io()
435 struct z_erofs_bvec *bvec, bool exclusive) in z_erofs_attach_page() argument
441 if (z_erofs_try_inplace_io(fe, bvec)) in z_erofs_attach_page()
[all …]
/Linux-v6.1/fs/squashfs/
Dblock.c39 struct bio_vec *bvec = bvec_init_iter_all(&iter_all); in copy_bio_to_actor() local
50 int bytes_to_copy = min_t(int, bvec->bv_len - offset, in copy_bio_to_actor()
56 memcpy(actor_addr + actor_offset, bvec_virt(bvec) + in copy_bio_to_actor()
69 if (offset >= bvec->bv_len) { in copy_bio_to_actor()
163 struct bio_vec *bvec = bvec_init_iter_all(&iter_all); in squashfs_read_data() local
178 data = bvec_virt(bvec); in squashfs_read_data()
180 if (offset < bvec->bv_len - 1) { in squashfs_read_data()
187 data = bvec_virt(bvec); in squashfs_read_data()
Dzlib_wrapper.c57 struct bio_vec *bvec = bvec_init_iter_all(&iter_all); in zlib_uncompress() local
83 avail = min(length, ((int)bvec->bv_len) - offset); in zlib_uncompress()
84 data = bvec_virt(bvec); in zlib_uncompress()
Dlzo_wrapper.c70 struct bio_vec *bvec = bvec_init_iter_all(&iter_all); in lzo_uncompress() local
77 int avail = min(bytes, ((int)bvec->bv_len) - offset); in lzo_uncompress()
79 data = bvec_virt(bvec); in lzo_uncompress()
Dlz4_wrapper.c96 struct bio_vec *bvec = bvec_init_iter_all(&iter_all); in lz4_uncompress() local
102 int avail = min(bytes, ((int)bvec->bv_len) - offset); in lz4_uncompress()
104 data = bvec_virt(bvec); in lz4_uncompress()
Dzstd_wrapper.c72 struct bio_vec *bvec = bvec_init_iter_all(&iter_all); in zstd_uncompress() local
100 avail = min(length, ((int)bvec->bv_len) - offset); in zstd_uncompress()
101 data = bvec_virt(bvec); in zstd_uncompress()
/Linux-v6.1/block/
Dblk-map.c48 struct bio_vec *bvec; in bio_copy_from_iter() local
51 bio_for_each_segment_all(bvec, bio, iter_all) { in bio_copy_from_iter()
54 ret = copy_page_from_iter(bvec->bv_page, in bio_copy_from_iter()
55 bvec->bv_offset, in bio_copy_from_iter()
56 bvec->bv_len, in bio_copy_from_iter()
62 if (ret < bvec->bv_len) in bio_copy_from_iter()
79 struct bio_vec *bvec; in bio_copy_to_iter() local
82 bio_for_each_segment_all(bvec, bio, iter_all) { in bio_copy_to_iter()
85 ret = copy_page_to_iter(bvec->bv_page, in bio_copy_to_iter()
86 bvec->bv_offset, in bio_copy_to_iter()
[all …]
Dbio.c951 struct bio_vec *bvec; in bio_add_hw_page() local
967 bvec = &bio->bi_io_vec[bio->bi_vcnt - 1]; in bio_add_hw_page()
968 if (bvec_gap_to_prev(&q->limits, bvec, offset)) in bio_add_hw_page()
978 bvec = &bio->bi_io_vec[bio->bi_vcnt]; in bio_add_hw_page()
979 bvec->bv_page = page; in bio_add_hw_page()
980 bvec->bv_len = len; in bio_add_hw_page()
981 bvec->bv_offset = offset; in bio_add_hw_page()
1120 struct bio_vec *bvec; in __bio_release_pages() local
1122 bio_for_each_segment_all(bvec, bio, iter_all) { in __bio_release_pages()
1123 if (mark_dirty && !PageCompound(bvec->bv_page)) in __bio_release_pages()
[all …]
Dblk-merge.c440 struct bio_vec *bvec, struct scatterlist *sglist, in blk_bvec_map_sg() argument
443 unsigned nbytes = bvec->bv_len; in blk_bvec_map_sg()
447 unsigned offset = bvec->bv_offset + total; in blk_bvec_map_sg()
449 bvec->bv_page, offset), nbytes); in blk_bvec_map_sg()
450 struct page *page = bvec->bv_page; in blk_bvec_map_sg()
484 __blk_segment_map_sg_merge(struct request_queue *q, struct bio_vec *bvec, in __blk_segment_map_sg_merge() argument
488 int nbytes = bvec->bv_len; in __blk_segment_map_sg_merge()
496 if (!biovec_phys_mergeable(q, bvprv, bvec)) in __blk_segment_map_sg_merge()
508 struct bio_vec bvec, bvprv = { NULL }; in __blk_bios_map_sg() local
514 bio_for_each_bvec(bvec, bio, iter) { in __blk_bios_map_sg()
[all …]
Dbounce.c105 struct bio_vec *bvec, orig_vec; in bounce_end_io() local
112 bio_for_each_segment_all(bvec, bio, iter_all) { in bounce_end_io()
114 if (bvec->bv_page != orig_vec.bv_page) { in bounce_end_io()
115 dec_zone_page_state(bvec->bv_page, NR_BOUNCE); in bounce_end_io()
116 mempool_free(bvec->bv_page, &page_pool); in bounce_end_io()
/Linux-v6.1/drivers/nvme/target/
Dio-cmd-file.c111 iov_iter_bvec(&iter, rw, req->f.bvec, nr_segs, count); in nvmet_file_submit_bvec()
125 if (req->f.bvec != req->inline_bvec) { in nvmet_file_io_done()
127 kfree(req->f.bvec); in nvmet_file_io_done()
129 mempool_free(req->f.bvec, req->ns->bvec_pool); in nvmet_file_io_done()
159 nvmet_file_init_bvec(&req->f.bvec[bv_cnt], sg); in nvmet_file_execute_io()
160 len += req->f.bvec[bv_cnt].bv_len; in nvmet_file_execute_io()
161 total_len += req->f.bvec[bv_cnt].bv_len; in nvmet_file_execute_io()
247 req->f.bvec = kmalloc_array(nr_bvec, sizeof(struct bio_vec), in nvmet_file_execute_rw()
250 req->f.bvec = req->inline_bvec; in nvmet_file_execute_rw()
252 if (unlikely(!req->f.bvec)) { in nvmet_file_execute_rw()
[all …]
/Linux-v6.1/lib/
Diov_iter.c137 const struct bio_vec *bvec = i->bvec; \
141 bvec, (K)) \
142 i->nr_segs -= bvec - i->bvec; \
143 i->bvec = bvec; \
857 const struct bio_vec *bvec, *end; in iov_iter_bvec_advance() local
865 for (bvec = i->bvec, end = bvec + i->nr_segs; bvec < end; bvec++) { in iov_iter_bvec_advance()
866 if (likely(size < bvec->bv_len)) in iov_iter_bvec_advance()
868 size -= bvec->bv_len; in iov_iter_bvec_advance()
871 i->nr_segs -= bvec - i->bvec; in iov_iter_bvec_advance()
872 i->bvec = bvec; in iov_iter_bvec_advance()
[all …]
/Linux-v6.1/arch/m68k/emu/
Dnfblock.c63 struct bio_vec bvec; in nfhd_submit_bio() local
70 bio_for_each_segment(bvec, bio, iter) { in nfhd_submit_bio()
71 len = bvec.bv_len; in nfhd_submit_bio()
74 page_to_phys(bvec.bv_page) + bvec.bv_offset); in nfhd_submit_bio()
/Linux-v6.1/drivers/target/
Dtarget_core_file.c321 struct bio_vec *bvec; in fd_do_rw() local
326 bvec = kcalloc(sgl_nents, sizeof(struct bio_vec), GFP_KERNEL); in fd_do_rw()
327 if (!bvec) { in fd_do_rw()
333 bvec[i].bv_page = sg_page(sg); in fd_do_rw()
334 bvec[i].bv_len = sg->length; in fd_do_rw()
335 bvec[i].bv_offset = sg->offset; in fd_do_rw()
340 iov_iter_bvec(&iter, READ, bvec, sgl_nents, len); in fd_do_rw()
384 kfree(bvec); in fd_do_rw()
441 struct bio_vec *bvec; in fd_execute_write_same() local
464 bvec = kcalloc(nolb, sizeof(struct bio_vec), GFP_KERNEL); in fd_execute_write_same()
[all …]
/Linux-v6.1/drivers/block/
Dn64cart.c89 struct bio_vec bvec; in n64cart_submit_bio() local
94 bio_for_each_segment(bvec, bio, iter) { in n64cart_submit_bio()
95 if (!n64cart_do_bvec(dev, &bvec, pos)) { in n64cart_submit_bio()
99 pos += bvec.bv_len; in n64cart_submit_bio()
Dloop.c87 struct bio_vec *bvec; member
241 static int lo_write_bvec(struct file *file, struct bio_vec *bvec, loff_t *ppos) in lo_write_bvec() argument
246 iov_iter_bvec(&i, WRITE, bvec, 1, bvec->bv_len); in lo_write_bvec()
252 if (likely(bw == bvec->bv_len)) in lo_write_bvec()
257 (unsigned long long)*ppos, bvec->bv_len); in lo_write_bvec()
266 struct bio_vec bvec; in lo_write_simple() local
270 rq_for_each_segment(bvec, rq, iter) { in lo_write_simple()
271 ret = lo_write_bvec(lo->lo_backing_file, &bvec, &pos); in lo_write_simple()
283 struct bio_vec bvec; in lo_read_simple() local
288 rq_for_each_segment(bvec, rq, iter) { in lo_read_simple()
[all …]
Dbrd.c289 struct bio_vec bvec; in brd_submit_bio() local
292 bio_for_each_segment(bvec, bio, iter) { in brd_submit_bio()
293 unsigned int len = bvec.bv_len; in brd_submit_bio()
297 WARN_ON_ONCE((bvec.bv_offset & (SECTOR_SIZE - 1)) || in brd_submit_bio()
300 err = brd_do_bvec(brd, bvec.bv_page, len, bvec.bv_offset, in brd_submit_bio()
/Linux-v6.1/Documentation/block/
Dbiovecs.rst20 bytes completed in the current bvec.
43 As of 5.12 bvec segments with zero bv_len are not supported.
52 exactly one bvec at a time - for example, bio_copy_data() in block/bio.c,
60 coding bvec iterators before, and having common implementation considerably
65 it somewhere else if there was an error) had to save the entire bvec array
68 * Biovecs can be shared between multiple bios - a bvec iter can represent an
76 bios with more than a single bvec! Now, we can efficiently split arbitrary
88 fine to _most_ devices, but since accessing the raw bvec array was the
90 since all drivers _must_ go through the bvec iterator - and have been
145 * The following helpers iterate over multi-page bvec. The passed 'struct
/Linux-v6.1/net/sunrpc/
Dsvcsock.c219 static void svc_flush_bvec(const struct bio_vec *bvec, size_t size, size_t seek) in svc_flush_bvec() argument
226 bvec_iter_advance(bvec, &bi, seek & PAGE_MASK); in svc_flush_bvec()
227 for_each_bvec(bv, bvec, bi, bi) in svc_flush_bvec()
231 static inline void svc_flush_bvec(const struct bio_vec *bvec, size_t size, in svc_flush_bvec() argument
247 struct bio_vec *bvec = rqstp->rq_bvec; in svc_tcp_read_msg() local
256 bvec[i].bv_page = rqstp->rq_pages[i]; in svc_tcp_read_msg()
257 bvec[i].bv_len = PAGE_SIZE; in svc_tcp_read_msg()
258 bvec[i].bv_offset = 0; in svc_tcp_read_msg()
263 iov_iter_bvec(&msg.msg_iter, READ, bvec, i, buflen); in svc_tcp_read_msg()
270 svc_flush_bvec(bvec, len, seek); in svc_tcp_read_msg()
[all …]
/Linux-v6.1/io_uring/
Drsrc.c146 unpin_user_page(imu->bvec[i].bv_page); in io_buffer_unmap()
1083 if (!PageCompound(imu->bvec[j].bv_page)) in headpage_already_acct()
1085 if (compound_head(imu->bvec[j].bv_page) == hpage) in headpage_already_acct()
1209 imu = kvmalloc(struct_size(imu, bvec, nr_pages), GFP_KERNEL); in io_sqe_buffer_register()
1225 imu->bvec[i].bv_page = pages[i]; in io_sqe_buffer_register()
1226 imu->bvec[i].bv_len = vec_len; in io_sqe_buffer_register()
1227 imu->bvec[i].bv_offset = off; in io_sqe_buffer_register()
1329 iov_iter_bvec(iter, ddir, imu->bvec, imu->nr_bvecs, offset + len); in io_import_fixed()
1348 const struct bio_vec *bvec = imu->bvec; in io_import_fixed() local
1350 if (offset <= bvec->bv_len) { in io_import_fixed()
[all …]

1234