| /linux/fs/nfs/ |
| H A D | localio.c | 60 static void nfs_local_do_read(struct nfs_local_kiocb *iocb, 62 static void nfs_local_do_write(struct nfs_local_kiocb *iocb, 306 nfs_local_iocb_free(struct nfs_local_kiocb *iocb) in nfs_local_iocb_free() argument 308 kfree(iocb->bvec); in nfs_local_iocb_free() 309 kfree(iocb); in nfs_local_iocb_free() 316 struct nfs_local_kiocb *iocb; in nfs_local_iocb_alloc() local 318 iocb = kzalloc_obj(*iocb, flags); in nfs_local_iocb_alloc() 319 if (iocb == NULL) in nfs_local_iocb_alloc() 322 iocb->bvec = kmalloc_objs(struct bio_vec, hdr->page_array.npages, flags); in nfs_local_iocb_alloc() 323 if (iocb->bvec == NULL) { in nfs_local_iocb_alloc() [all …]
|
| H A D | file.c | 162 nfs_file_read(struct kiocb *iocb, struct iov_iter *to) in nfs_file_read() argument 164 struct inode *inode = file_inode(iocb->ki_filp); in nfs_file_read() 167 trace_nfs_file_read(iocb, to); in nfs_file_read() 169 if (iocb->ki_flags & IOCB_DIRECT) in nfs_file_read() 170 return nfs_file_direct_read(iocb, to, false); in nfs_file_read() 173 if (iocb->ki_flags & IOCB_NOWAIT) in nfs_file_read() 177 iocb->ki_filp, in nfs_file_read() 178 iov_iter_count(to), (unsigned long) iocb->ki_pos); in nfs_file_read() 184 result = nfs_revalidate_mapping(inode, iocb->ki_filp->f_mapping); in nfs_file_read() 186 result = generic_file_read_iter(iocb, to); in nfs_file_read() [all …]
|
| H A D | direct.c | 216 if (dreq->iocb) in nfs_direct_wait() 242 if (dreq->iocb) { in nfs_direct_complete() 248 dreq->iocb->ki_complete(dreq->iocb, res); in nfs_direct_complete() 412 ssize_t nfs_file_direct_read(struct kiocb *iocb, struct iov_iter *iter, in nfs_file_direct_read() argument 415 struct file *file = iocb->ki_filp; in nfs_file_direct_read() 425 file, count, (long long) iocb->ki_pos); in nfs_file_direct_read() 440 dreq->io_start = iocb->ki_pos; in nfs_file_direct_read() 441 dreq->ctx = get_nfs_open_context(nfs_file_open_context(iocb->ki_filp)); in nfs_file_direct_read() 449 if (!is_sync_kiocb(iocb)) { in nfs_file_direct_read() 450 dreq->iocb = iocb; in nfs_file_direct_read() [all …]
|
| /linux/block/ |
| H A D | fops.c | 29 static blk_opf_t dio_bio_write_op(struct kiocb *iocb) in dio_bio_write_op() argument 34 if (iocb_is_dsync(iocb)) in dio_bio_write_op() 39 static bool blkdev_dio_invalid(struct block_device *bdev, struct kiocb *iocb, in blkdev_dio_invalid() argument 42 return (iocb->ki_pos | iov_iter_count(iter)) & in blkdev_dio_invalid() 55 static ssize_t __blkdev_direct_IO_simple(struct kiocb *iocb, in __blkdev_direct_IO_simple() argument 60 loff_t pos = iocb->ki_pos; in __blkdev_direct_IO_simple() 78 bio_init(&bio, bdev, vecs, nr_pages, dio_bio_write_op(iocb)); in __blkdev_direct_IO_simple() 81 bio.bi_write_hint = file_inode(iocb->ki_filp)->i_write_hint; in __blkdev_direct_IO_simple() 82 bio.bi_write_stream = iocb->ki_write_stream; in __blkdev_direct_IO_simple() 83 bio.bi_ioprio = iocb in __blkdev_direct_IO_simple() 120 struct kiocb *iocb; global() member 145 struct kiocb *iocb = dio->iocb; blkdev_bio_end_io() local 175 __blkdev_direct_IO(struct kiocb * iocb,struct iov_iter * iter,struct block_device * bdev,unsigned int nr_pages) __blkdev_direct_IO() argument 297 struct kiocb *iocb = dio->iocb; blkdev_bio_end_io_async() local 322 __blkdev_direct_IO_async(struct kiocb * iocb,struct iov_iter * iter,struct block_device * bdev,unsigned int nr_pages) __blkdev_direct_IO_async() argument 394 blkdev_direct_IO(struct kiocb * iocb,struct iov_iter * iter) blkdev_direct_IO() argument 687 blkdev_direct_write(struct kiocb * iocb,struct iov_iter * from) blkdev_direct_write() argument 710 blkdev_buffered_write(struct kiocb * iocb,struct iov_iter * from) blkdev_buffered_write() argument 723 blkdev_write_iter(struct kiocb * iocb,struct iov_iter * from) blkdev_write_iter() argument 788 blkdev_read_iter(struct kiocb * iocb,struct iov_iter * to) blkdev_read_iter() argument [all...] |
| /linux/fs/ext4/ |
| H A D | file.c | 55 static bool ext4_should_use_dio(struct kiocb *iocb, struct iov_iter *iter) in ext4_should_use_dio() argument 57 struct inode *inode = file_inode(iocb->ki_filp); in ext4_should_use_dio() 66 return IS_ALIGNED(iocb->ki_pos | iov_iter_alignment(iter), dio_align); in ext4_should_use_dio() 69 static ssize_t ext4_dio_read_iter(struct kiocb *iocb, struct iov_iter *to) in ext4_dio_read_iter() argument 72 struct inode *inode = file_inode(iocb->ki_filp); in ext4_dio_read_iter() 74 if (iocb->ki_flags & IOCB_NOWAIT) { in ext4_dio_read_iter() 81 if (!ext4_should_use_dio(iocb, to)) { in ext4_dio_read_iter() 90 iocb->ki_flags &= ~IOCB_DIRECT; in ext4_dio_read_iter() 91 return generic_file_read_iter(iocb, to); in ext4_dio_read_iter() 94 ret = iomap_dio_read_simple(iocb, to, ext4_iomap_begin); in ext4_dio_read_iter() [all …]
|
| /linux/fs/iomap/ |
| H A D | direct-io.c | 31 struct kiocb *iocb; member 67 struct kiocb *iocb = dio->iocb; in iomap_dio_submit_bio() local 72 if ((iocb->ki_flags & IOCB_HIPRI) && !is_sync_kiocb(iocb)) { in iomap_dio_submit_bio() 74 WRITE_ONCE(iocb->private, bio); in iomap_dio_submit_bio() 108 struct kiocb *iocb = dio->iocb; in iomap_dio_complete() local 109 loff_t offset = iocb->ki_pos; in iomap_dio_complete() 113 ret = dops->end_io(iocb, dio->size, ret, dio->flags); in iomap_dio_complete() 115 fserror_report_io(file_inode(iocb->ki_filp), in iomap_dio_complete() 141 kiocb_invalidate_post_direct_write(iocb, dio->size); in iomap_dio_complete() 143 inode_dio_end(file_inode(iocb->ki_filp)); in iomap_dio_complete() [all …]
|
| /linux/fs/xfs/ |
| H A D | xfs_file.c | 174 struct kiocb *iocb, in xfs_ilock_iocb() argument 177 struct xfs_inode *ip = XFS_I(file_inode(iocb->ki_filp)); in xfs_ilock_iocb() 179 if (iocb->ki_flags & IOCB_NOWAIT) { in xfs_ilock_iocb() 191 struct kiocb *iocb, in xfs_ilock_iocb_for_write() argument 195 struct xfs_inode *ip = XFS_I(file_inode(iocb->ki_filp)); in xfs_ilock_iocb_for_write() 197 ret = xfs_ilock_iocb(iocb, *lock_mode); in xfs_ilock_iocb_for_write() 209 return xfs_ilock_iocb(iocb, *lock_mode); in xfs_ilock_iocb_for_write() 237 struct kiocb *iocb, in xfs_file_dio_read() argument 240 struct xfs_inode *ip = XFS_I(file_inode(iocb->ki_filp)); in xfs_file_dio_read() 243 trace_xfs_file_direct_read(iocb, to); in xfs_file_dio_read() [all …]
|
| /linux/fs/netfs/ |
| H A D | direct_write.c | 48 if (wreq->iocb) { in netfs_unbuffered_write_done() 51 wreq->iocb->ki_pos += written; in netfs_unbuffered_write_done() 52 if (wreq->iocb->ki_complete) { in netfs_unbuffered_write_done() 54 wreq->iocb->ki_complete(wreq->iocb, written ?: wreq->error); in netfs_unbuffered_write_done() 56 wreq->iocb = VFS_PTR_POISON; in netfs_unbuffered_write_done() 164 if (!wreq->iocb && signal_pending(current)) { in netfs_unbuffered_write() 224 ssize_t netfs_unbuffered_write_iter_locked(struct kiocb *iocb, struct iov_iter *iter, in netfs_unbuffered_write_iter_locked() argument 228 unsigned long long start = iocb->ki_pos; in netfs_unbuffered_write_iter_locked() 232 bool async = !is_sync_kiocb(iocb); in netfs_unbuffered_write_iter_locked() 332 netfs_unbuffered_write_iter(struct kiocb * iocb,struct iov_iter * from) netfs_unbuffered_write_iter() argument [all...] |
| H A D | direct_read.c | 153 ssize_t netfs_unbuffered_read_iter_locked(struct kiocb *iocb, struct iov_iter *iter) in netfs_unbuffered_read_iter_locked() argument 158 bool sync = is_sync_kiocb(iocb); in netfs_unbuffered_read_iter_locked() 165 ret = kiocb_write_and_wait(iocb, orig_count); in netfs_unbuffered_read_iter_locked() 168 file_accessed(iocb->ki_filp); in netfs_unbuffered_read_iter_locked() 170 rreq = netfs_alloc_request(iocb->ki_filp->f_mapping, iocb->ki_filp, in netfs_unbuffered_read_iter_locked() 171 iocb->ki_pos, orig_count, in netfs_unbuffered_read_iter_locked() 172 iocb->ki_flags & IOCB_DIRECT ? in netfs_unbuffered_read_iter_locked() 207 rreq->iocb = iocb; in netfs_unbuffered_read_iter_locked() 216 iocb->ki_pos += rreq->transferred; in netfs_unbuffered_read_iter_locked() 240 ssize_t netfs_unbuffered_read_iter(struct kiocb *iocb, struct iov_iter *iter) in netfs_unbuffered_read_iter() argument [all …]
|
| H A D | buffered_write.c | 75 * @iocb: The operation parameters 79 * Copy data into pagecache folios attached to the inode specified by @iocb. 87 ssize_t netfs_perform_write(struct kiocb *iocb, struct iov_iter *iter, in netfs_perform_write() argument 90 struct file *file = iocb->ki_filp; in netfs_perform_write() 98 .range_start = iocb->ki_pos, in netfs_perform_write() 99 .range_end = iocb->ki_pos + iter->count, in netfs_perform_write() 103 unsigned int bdp_flags = (iocb->ki_flags & IOCB_NOWAIT) ? BDP_ASYNC : 0; in netfs_perform_write() 105 loff_t pos = iocb->ki_pos; in netfs_perform_write() 109 if (unlikely(iocb->ki_flags & (IOCB_DSYNC | IOCB_SYNC)) in netfs_perform_write() 119 wreq = netfs_begin_writethrough(iocb, ite in netfs_perform_write() 468 netfs_buffered_write_iter_locked(struct kiocb * iocb,struct iov_iter * from,struct netfs_group * netfs_group) netfs_buffered_write_iter_locked() argument 501 netfs_file_write_iter(struct kiocb * iocb,struct iov_iter * from) netfs_file_write_iter() argument [all...] |
| /linux/io_uring/ |
| H A D | mock_file.c | 17 struct kiocb *iocb; member 105 struct kiocb *iocb = mio->iocb; in io_mock_rw_timer_expired() local 107 WRITE_ONCE(iocb->private, NULL); in io_mock_rw_timer_expired() 108 iocb->ki_complete(iocb, mio->res); in io_mock_rw_timer_expired() 113 static ssize_t io_mock_delay_rw(struct kiocb *iocb, size_t len) in io_mock_delay_rw() argument 115 struct io_mock_file *mf = iocb->ki_filp->private_data; in io_mock_delay_rw() 122 mio->iocb = iocb; in io_mock_delay_rw() 131 static ssize_t io_mock_read_iter(struct kiocb *iocb, struct iov_iter *to) in io_mock_read_iter() argument 133 struct io_mock_file *mf = iocb->ki_filp->private_data; in io_mock_read_iter() 137 if (iocb->ki_pos + len > mf->size) in io_mock_read_iter() [all …]
|
| /linux/fs/erofs/ |
| H A D | fileio.c | 11 struct kiocb iocb; member 22 static void erofs_fileio_ki_complete(struct kiocb *iocb, long ret) in erofs_fileio_ki_complete() argument 25 container_of(iocb, struct erofs_fileio_rq, iocb); in erofs_fileio_ki_complete() 51 rq->iocb.ki_pos = rq->bio.bi_iter.bi_sector << SECTOR_SHIFT; in erofs_fileio_rq_submit() 52 rq->iocb.ki_ioprio = get_current_ioprio(); in erofs_fileio_rq_submit() 53 rq->iocb.ki_complete = erofs_fileio_ki_complete; in erofs_fileio_rq_submit() 55 rq->iocb.ki_filp->f_mode & FMODE_CAN_ODIRECT) in erofs_fileio_rq_submit() 56 rq->iocb.ki_flags = IOCB_DIRECT; in erofs_fileio_rq_submit() 59 scoped_with_creds(rq->iocb.ki_filp->f_cred) in erofs_fileio_rq_submit() 60 ret = vfs_iocb_iter_read(rq->iocb.ki_filp, &rq->iocb, &iter); in erofs_fileio_rq_submit() [all …]
|
| /linux/tools/usb/ffs-aio-example/multibuff/device_app/ |
| H A D | aio_multibuff.c | 144 struct iocb **iocb; member 212 iobuf->iocb = malloc(n*sizeof(*iobuf->iocb)); in init_bufs() 218 iobuf->iocb[i] = malloc(sizeof(**iobuf->iocb)); in init_bufs() 228 free(iobuf->iocb[i]); in delete_bufs() 231 free(iobuf->iocb); in delete_bufs() 332 io_prep_pwrite(iobuf[i].iocb[j], ep1, in main() 336 iobuf[i].iocb[j]->u.c.flags |= IOCB_FLAG_RESFD; in main() 337 iobuf[i].iocb[j]->u.c.resfd = evfd; in main() 340 ret = io_submit(ctx, iobuf[i].cnt, iobuf[i].iocb); in main()
|
| /linux/drivers/gpu/drm/display/ |
| H A D | drm_dp_aux_dev.c | 146 static ssize_t auxdev_read_iter(struct kiocb *iocb, struct iov_iter *to) in auxdev_read_iter() argument 148 struct drm_dp_aux_dev *aux_dev = iocb->ki_filp->private_data; in auxdev_read_iter() 149 loff_t pos = iocb->ki_pos; in auxdev_read_iter() 179 if (pos != iocb->ki_pos) in auxdev_read_iter() 180 res = pos - iocb->ki_pos; in auxdev_read_iter() 181 iocb->ki_pos = pos; in auxdev_read_iter() 189 static ssize_t auxdev_write_iter(struct kiocb *iocb, struct iov_iter *from) in auxdev_write_iter() argument 191 struct drm_dp_aux_dev *aux_dev = iocb->ki_filp->private_data; in auxdev_write_iter() 192 loff_t pos = iocb->ki_pos; in auxdev_write_iter() 222 if (pos != iocb->ki_pos) in auxdev_write_iter() [all …]
|
| /linux/mm/ |
| H A D | filemap.c | 2563 static int filemap_update_page(struct kiocb *iocb, in filemap_update_page() argument 2569 if (iocb->ki_flags & IOCB_NOWAIT) { in filemap_update_page() 2578 if (iocb->ki_flags & (IOCB_NOWAIT | IOCB_NOIO)) in filemap_update_page() 2580 if (!(iocb->ki_flags & IOCB_WAITQ)) { in filemap_update_page() 2589 error = __folio_lock_async(folio, iocb->ki_waitq); in filemap_update_page() 2599 if (filemap_range_uptodate(mapping, iocb->ki_pos, count, folio, in filemap_update_page() 2604 if (iocb->ki_flags & (IOCB_NOIO | IOCB_NOWAIT | IOCB_WAITQ)) in filemap_update_page() 2607 error = filemap_read_folio(iocb->ki_filp, mapping->a_ops->read_folio, in filemap_update_page() 2619 static int filemap_create_folio(struct kiocb *iocb, struct folio_batch *fbatch) in filemap_create_folio() argument 2621 struct address_space *mapping = iocb->ki_filp->f_mapping; in filemap_create_folio() [all …]
|
| /linux/fs/gfs2/ |
| H A D | file.c | 780 struct kiocb *iocb, in should_fault_in_pages() argument 797 offs = offset_in_page(iocb->ki_pos); in should_fault_in_pages() 811 static ssize_t gfs2_file_direct_read(struct kiocb *iocb, struct iov_iter *to, in gfs2_file_direct_read() argument 814 struct file *file = iocb->ki_filp; in gfs2_file_direct_read() 847 ret = iomap_dio_rw(iocb, to, &gfs2_iomap_ops, NULL, in gfs2_file_direct_read() 857 if (should_fault_in_pages(to, iocb, &prev_count, &window_size)) { in gfs2_file_direct_read() 874 static ssize_t gfs2_file_direct_write(struct kiocb *iocb, struct iov_iter *from, in gfs2_file_direct_write() argument 877 struct file *file = iocb->ki_filp; in gfs2_file_direct_write() 909 if (iocb->ki_pos + iov_iter_count(from) > i_size_read(&ip->i_inode)) in gfs2_file_direct_write() 913 ret = iomap_dio_rw(iocb, from, &gfs2_iomap_ops, NULL, in gfs2_file_direct_write() [all …]
|
| /linux/fs/ntfs3/ |
| H A D | file.c | 51 static bool ntfs_should_use_dio(struct kiocb *iocb, struct iov_iter *iter) in ntfs_should_use_dio() argument 53 struct inode *inode = file_inode(iocb->ki_filp); in ntfs_should_use_dio() 59 return IS_ALIGNED(iocb->ki_pos | iov_iter_alignment(iter), dio_align); in ntfs_should_use_dio() 817 static ssize_t ntfs_file_read_iter(struct kiocb *iocb, struct iov_iter *iter) in ntfs_file_read_iter() argument 819 struct file *file = iocb->ki_filp; in ntfs_file_read_iter() 837 if (unlikely(iocb->ki_flags & IOCB_DIRECT)) { in ntfs_file_read_iter() 845 ret = ni_query_ads(ni, &iocb->ki_pos, iter); in ntfs_file_read_iter() 851 if (iocb->ki_flags & IOCB_DIRECT) { in ntfs_file_read_iter() 861 if (!(iocb->ki_flags & IOCB_DIRECT) || in ntfs_file_read_iter() 862 !ntfs_should_use_dio(iocb, iter)) { in ntfs_file_read_iter() [all …]
|
| /linux/fs/overlayfs/ |
| H A D | file.c | 290 static void ovl_file_end_write(struct kiocb *iocb, ssize_t ret) in ovl_file_end_write() argument 292 ovl_file_modified(iocb->ki_filp); in ovl_file_end_write() 323 static ssize_t ovl_read_iter(struct kiocb *iocb, struct iov_iter *iter) in ovl_read_iter() argument 325 struct file *file = iocb->ki_filp; in ovl_read_iter() 339 return backing_file_read_iter(realfile, iter, iocb, iocb->ki_flags, in ovl_read_iter() 343 static ssize_t ovl_write_iter(struct kiocb *iocb, struct iov_iter *iter) in ovl_write_iter() argument 345 struct file *file = iocb->ki_filp; in ovl_write_iter() 349 int ifl = iocb->ki_flags; in ovl_write_iter() 370 ret = backing_file_write_iter(realfile, iter, iocb, ifl, &ctx); in ovl_write_iter() 388 struct kiocb iocb; in ovl_splice_read() local [all …]
|
| /linux/fs/fuse/ |
| H A D | file.c | 646 struct address_space *mapping = io->iocb->ki_filp->f_mapping; in fuse_aio_invalidate_worker() 652 io->iocb->ki_complete(io->iocb, res); in fuse_aio_invalidate_worker() 688 struct inode *inode = file_inode(io->iocb->ki_filp); in fuse_aio_complete() 689 struct address_space *mapping = io->iocb->ki_filp->f_mapping; in fuse_aio_complete() 712 io->iocb->ki_complete(io->iocb, res); in fuse_aio_complete() 798 struct file *file = ia->io->iocb->ki_filp; in fuse_send_read() 1116 static ssize_t fuse_cache_read_iter(struct kiocb *iocb, struct iov_iter *to) in fuse_cache_read_iter() argument 1118 struct inode *inode = iocb->ki_filp->f_mapping->host; in fuse_cache_read_iter() 1127 (iocb->ki_pos + iov_iter_count(to) > i_size_read(inode))) { in fuse_cache_read_iter() 1129 err = fuse_update_attributes(inode, iocb->ki_filp, STATX_SIZE); in fuse_cache_read_iter() [all …]
|
| /linux/drivers/comedi/drivers/ |
| H A D | comedi_8254.c | 215 return 0xff & i8254->iocb(i8254, 0, reg, 0); in __i8254_read() 221 i8254->iocb(i8254, 1, reg, val); in __i8254_write() 619 static struct comedi_8254 *__i8254_init(comedi_8254_iocb_fn *iocb, in __i8254_init() argument 633 if (!iocb) in __i8254_init() 640 i8254->iocb = iocb; in __i8254_init() 672 comedi_8254_iocb_fn *iocb; in comedi_8254_io_alloc() local 676 iocb = i8254_io8_cb; in comedi_8254_io_alloc() 679 iocb = i8254_io16_cb; in comedi_8254_io_alloc() 682 iocb = i8254_io32_cb; in comedi_8254_io_alloc() 687 return __i8254_init(iocb, iobase, osc_base, iosize, regshift); in comedi_8254_io_alloc() [all …]
|
| /linux/drivers/nvme/target/ |
| H A D | io-cmd-file.c | 79 struct kiocb *iocb = &req->f.iocb; in nvmet_file_submit_bvec() local 80 ssize_t (*call_iter)(struct kiocb *iocb, struct iov_iter *iter); in nvmet_file_submit_bvec() 96 iocb->ki_pos = pos; in nvmet_file_submit_bvec() 97 iocb->ki_filp = req->ns->file; in nvmet_file_submit_bvec() 98 iocb->ki_flags = ki_flags | iocb->ki_filp->f_iocb_flags; in nvmet_file_submit_bvec() 100 return call_iter(iocb, &iter); in nvmet_file_submit_bvec() 103 static void nvmet_file_io_done(struct kiocb *iocb, long ret) in nvmet_file_io_done() argument 105 struct nvmet_req *req = container_of(iocb, struct nvmet_req, f.iocb); in nvmet_file_io_done() 140 memset(&req->f.iocb, 0, sizeof(struct kiocb)); in nvmet_file_execute_io() 178 req->f.iocb.ki_complete = nvmet_file_io_done; in nvmet_file_execute_io() [all …]
|
| /linux/fs/ntfs/ |
| H A D | file.c | 454 static ssize_t ntfs_file_read_iter(struct kiocb *iocb, struct iov_iter *to) in ntfs_file_read_iter() argument 456 struct inode *vi = file_inode(iocb->ki_filp); in ntfs_file_read_iter() 464 iocb->ki_flags & IOCB_DIRECT) in ntfs_file_read_iter() 469 if (iocb->ki_flags & IOCB_DIRECT) { in ntfs_file_read_iter() 472 if ((iocb->ki_pos | count) & (sb->s_blocksize - 1)) { in ntfs_file_read_iter() 477 file_accessed(iocb->ki_filp); in ntfs_file_read_iter() 478 ret = iomap_dio_rw(iocb, to, &ntfs_read_iomap_ops, NULL, 0, in ntfs_file_read_iter() 481 ret = generic_file_read_iter(iocb, to); in ntfs_file_read_iter() 490 static int ntfs_file_write_dio_end_io(struct kiocb *iocb, ssize_t size, in ntfs_file_write_dio_end_io() argument 493 struct inode *inode = file_inode(iocb->ki_filp); in ntfs_file_write_dio_end_io() [all …]
|
| /linux/fs/btrfs/ |
| H A D | direct-io.c | 819 static ssize_t btrfs_dio_read(struct kiocb *iocb, struct iov_iter *iter, in btrfs_dio_read() argument 824 return iomap_dio_rw(iocb, iter, &btrfs_dio_iomap_ops, &btrfs_dio_ops, in btrfs_dio_read() 847 static struct iomap_dio *btrfs_dio_write(struct kiocb *iocb, struct iov_iter *iter, in btrfs_dio_write() argument 853 if (need_stable_write(BTRFS_I(file_inode(iocb->ki_filp)))) { in btrfs_dio_write() 855 if (iocb->ki_flags & IOCB_NOWAIT) in btrfs_dio_write() 861 return __iomap_dio_rw(iocb, iter, &btrfs_dio_iomap_ops, &btrfs_dio_ops, in btrfs_dio_write() 878 ssize_t btrfs_direct_write(struct kiocb *iocb, struct iov_iter *from) in btrfs_direct_write() argument 880 struct file *file = iocb->ki_filp; in btrfs_direct_write() 892 if (iocb->ki_flags & IOCB_NOWAIT) in btrfs_direct_write() 901 if (iocb->ki_pos + iov_iter_count(from) <= i_size_read(inode) && IS_NOSEC(inode)) in btrfs_direct_write() [all …]
|
| /linux/fs/ceph/ |
| H A D | file.c | 1279 static ssize_t ceph_sync_read(struct kiocb *iocb, struct iov_iter *to, in ceph_sync_read() argument 1282 struct file *file = iocb->ki_filp; in ceph_sync_read() 1286 doutc(cl, "on file %p %llx~%zx %s\n", file, iocb->ki_pos, in ceph_sync_read() 1290 return __ceph_sync_read(inode, &iocb->ki_pos, to, retry_op, NULL); in ceph_sync_read() 1294 struct kiocb *iocb; member 1323 if (aio_req->iocb->ki_flags & IOCB_DIRECT) in ceph_aio_complete() 1335 loff_t endoff = aio_req->iocb->ki_pos + aio_req->total_len; in ceph_aio_complete() 1353 aio_req->iocb->ki_complete(aio_req->iocb, ret); in ceph_aio_complete() 1406 loff_t endoff = aio_req->iocb->ki_pos + rc; in ceph_aio_complete_req() 1519 ceph_direct_read_write(struct kiocb *iocb, struct iov_iter *iter, in ceph_direct_read_write() argument [all …]
|
| /linux/include/linux/ |
| H A D | iomap.h | 431 ssize_t iomap_file_buffered_write(struct kiocb *iocb, struct iov_iter *from, 623 int (*end_io)(struct kiocb *iocb, ssize_t size, int error, 676 ssize_t iomap_dio_rw(struct kiocb *iocb, struct iov_iter *iter, 679 struct iomap_dio *__iomap_dio_rw(struct kiocb *iocb, struct iov_iter *iter, 704 ssize_t __iomap_dio_read_simple(struct kiocb *iocb, struct iov_iter *iter, 706 static __always_inline ssize_t iomap_dio_read_simple(struct kiocb *iocb, in iomap_dio_read_simple() argument 710 .inode = file_inode(iocb->ki_filp), in iomap_dio_read_simple() 711 .pos = iocb->ki_pos, in iomap_dio_read_simple() 727 if (iocb->ki_pos + iomi.len > i_size_read(iomi.inode)) in iomap_dio_read_simple() 732 ret = kiocb_write_and_wait(iocb, iomi.len); in iomap_dio_read_simple() [all …]
|