/linux/block/ |
H A D | fops.c | 28 static blk_opf_t dio_bio_write_op(struct kiocb *iocb) in dio_bio_write_op() argument 33 if (iocb_is_dsync(iocb)) in dio_bio_write_op() 38 static bool blkdev_dio_invalid(struct block_device *bdev, struct kiocb *iocb, in blkdev_dio_invalid() argument 41 return iocb->ki_pos & (bdev_logical_block_size(bdev) - 1) || in blkdev_dio_invalid() 47 static ssize_t __blkdev_direct_IO_simple(struct kiocb *iocb, in __blkdev_direct_IO_simple() argument 52 loff_t pos = iocb->ki_pos; in __blkdev_direct_IO_simple() 71 bio_init(&bio, bdev, vecs, nr_pages, dio_bio_write_op(iocb)); in __blkdev_direct_IO_simple() 74 bio.bi_write_hint = file_inode(iocb->ki_filp)->i_write_hint; in __blkdev_direct_IO_simple() 75 bio.bi_ioprio = iocb->ki_ioprio; in __blkdev_direct_IO_simple() 76 if (iocb->ki_flags & IOCB_ATOMIC) in __blkdev_direct_IO_simple() [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_rw(iocb, to, &ext4_iomap_ops, NULL, 0, NULL, 0); in ext4_dio_read_iter() [all …]
|
/linux/fs/iomap/ |
H A D | direct-io.c | 38 struct kiocb *iocb; member 74 struct kiocb *iocb = dio->iocb; in iomap_dio_submit_bio() local 79 if ((iocb->ki_flags & IOCB_HIPRI) && !is_sync_kiocb(iocb)) { in iomap_dio_submit_bio() 80 bio_set_polled(bio, iocb); in iomap_dio_submit_bio() 81 WRITE_ONCE(iocb->private, bio); in iomap_dio_submit_bio() 93 struct kiocb *iocb = dio->iocb; in iomap_dio_complete() local 94 loff_t offset = iocb->ki_pos; in iomap_dio_complete() 98 ret = dops->end_io(iocb, dio->size, ret, dio->flags); in iomap_dio_complete() 121 kiocb_invalidate_post_direct_write(iocb, dio->size); in iomap_dio_complete() 123 inode_dio_end(file_inode(iocb->ki_filp)); in iomap_dio_complete() [all …]
|
/linux/fs/nfs/ |
H A D | localio.c | 267 nfs_local_iocb_free(struct nfs_local_kiocb *iocb) in nfs_local_iocb_free() argument 269 kfree(iocb->bvec); in nfs_local_iocb_free() 270 kfree(iocb); in nfs_local_iocb_free() 277 struct nfs_local_kiocb *iocb; in nfs_local_iocb_alloc() local 279 iocb = kmalloc(sizeof(*iocb), flags); in nfs_local_iocb_alloc() 280 if (iocb == NULL) in nfs_local_iocb_alloc() 282 iocb->bvec = nfs_bvec_alloc_and_import_pagevec(hdr->page_array.pagevec, in nfs_local_iocb_alloc() 284 if (iocb->bvec == NULL) { in nfs_local_iocb_alloc() 285 kfree(iocb); in nfs_local_iocb_alloc() 288 init_sync_kiocb(&iocb->kiocb, file); in nfs_local_iocb_alloc() [all …]
|
H A D | direct.c | 140 int nfs_swap_rw(struct kiocb *iocb, struct iov_iter *iter) in nfs_swap_rw() argument 145 ret = nfs_file_direct_read(iocb, iter, true); in nfs_swap_rw() 147 ret = nfs_file_direct_write(iocb, iter, true); in nfs_swap_rw() 221 if (dreq->iocb) in nfs_direct_wait() 247 if (dreq->iocb) { in nfs_direct_complete() 253 dreq->iocb->ki_complete(dreq->iocb, res); in nfs_direct_complete() 414 ssize_t nfs_file_direct_read(struct kiocb *iocb, struct iov_iter *iter, in nfs_file_direct_read() argument 417 struct file *file = iocb->ki_filp; in nfs_file_direct_read() 427 file, count, (long long) iocb->ki_pos); in nfs_file_direct_read() 442 dreq->io_start = iocb->ki_pos; in nfs_file_direct_read() [all …]
|
H A D | file.c | 157 nfs_file_read(struct kiocb *iocb, struct iov_iter *to) in nfs_file_read() argument 159 struct inode *inode = file_inode(iocb->ki_filp); in nfs_file_read() 162 if (iocb->ki_flags & IOCB_DIRECT) in nfs_file_read() 163 return nfs_file_direct_read(iocb, to, false); in nfs_file_read() 166 iocb->ki_filp, in nfs_file_read() 167 iov_iter_count(to), (unsigned long) iocb->ki_pos); in nfs_file_read() 173 result = nfs_revalidate_mapping(inode, iocb->ki_filp->f_mapping); in nfs_file_read() 175 result = generic_file_read_iter(iocb, to); in nfs_file_read() 644 ssize_t nfs_file_write(struct kiocb *iocb, struct iov_iter *from) in nfs_file_write() argument 646 struct file *file = iocb->ki_filp; in nfs_file_write() [all …]
|
/linux/fs/ext2/ |
H A D | trace.h | 12 TP_PROTO(struct kiocb *iocb, struct iov_iter *iter, ssize_t ret), 13 TP_ARGS(iocb, iter, ret), 25 __entry->dev = file_inode(iocb->ki_filp)->i_sb->s_dev; 26 __entry->ino = file_inode(iocb->ki_filp)->i_ino; 27 __entry->isize = file_inode(iocb->ki_filp)->i_size; 28 __entry->pos = iocb->ki_pos; 30 __entry->ki_flags = iocb->ki_flags; 31 __entry->aio = !is_sync_kiocb(iocb); 47 TP_PROTO(struct kiocb *iocb, struct iov_iter *iter, ssize_t ret), \ 48 TP_ARGS(iocb, iter, ret)) [all …]
|
/linux/fs/ |
H A D | aio.c | 584 void kiocb_set_cancel_fn(struct kiocb *iocb, kiocb_cancel_fn *cancel) in kiocb_set_cancel_fn() argument 594 if (!(iocb->ki_flags & IOCB_AIO_RW)) in kiocb_set_cancel_fn() 597 req = container_of(iocb, struct aio_kiocb, rw); in kiocb_set_cancel_fn() 1103 static inline void iocb_destroy(struct aio_kiocb *iocb) in iocb_destroy() argument 1105 if (iocb->ki_eventfd) in iocb_destroy() 1106 eventfd_ctx_put(iocb->ki_eventfd); in iocb_destroy() 1107 if (iocb->ki_filp) in iocb_destroy() 1108 fput(iocb->ki_filp); in iocb_destroy() 1109 percpu_ref_put(&iocb->ki_ctx->reqs); in iocb_destroy() 1110 kmem_cache_free(kiocb_cachep, iocb); in iocb_destroy() [all …]
|
/linux/fs/zonefs/ |
H A D | file.c | 345 static int zonefs_file_write_dio_end_io(struct kiocb *iocb, ssize_t size, in zonefs_file_write_dio_end_io() argument 348 struct inode *inode = file_inode(iocb->ki_filp); in zonefs_file_write_dio_end_io() 356 if (!is_sync_kiocb(iocb)) in zonefs_file_write_dio_end_io() 370 if (i_size_read(inode) < iocb->ki_pos + size) { in zonefs_file_write_dio_end_io() 371 zonefs_update_stats(inode, iocb->ki_pos + size); in zonefs_file_write_dio_end_io() 372 zonefs_i_size_write(inode, iocb->ki_pos + size); in zonefs_file_write_dio_end_io() 413 static ssize_t zonefs_write_checks(struct kiocb *iocb, struct iov_iter *from) in zonefs_write_checks() argument 415 struct file *file = iocb->ki_filp; in zonefs_write_checks() 427 if ((iocb->ki_flags & IOCB_NOWAIT) && !(iocb->ki_flags & IOCB_DIRECT)) in zonefs_write_checks() 430 if (iocb->ki_flags & IOCB_APPEND) { in zonefs_write_checks() [all …]
|
/linux/fs/ocfs2/ |
H A D | aops.h | 51 #define ocfs2_iocb_is_rw_locked(iocb) \ argument 52 test_bit(0, (unsigned long *)&iocb->private) 53 static inline void ocfs2_iocb_set_rw_locked(struct kiocb *iocb, int level) in ocfs2_iocb_set_rw_locked() argument 55 set_bit(0, (unsigned long *)&iocb->private); in ocfs2_iocb_set_rw_locked() 57 set_bit(1, (unsigned long *)&iocb->private); in ocfs2_iocb_set_rw_locked() 59 clear_bit(1, (unsigned long *)&iocb->private); in ocfs2_iocb_set_rw_locked() 73 #define ocfs2_iocb_init_rw_locked(iocb) \ argument 74 (iocb->private = NULL) 75 #define ocfs2_iocb_clear_rw_locked(iocb) \ argument 76 clear_bit(OCFS2_IOCB_RW_LOCK, (unsigned long *)&iocb->private) [all …]
|
/linux/fs/netfs/ |
H A D | buffered_write.c | 96 ssize_t netfs_perform_write(struct kiocb *iocb, struct iov_iter *iter, in netfs_perform_write() argument 99 struct file *file = iocb->ki_filp; in netfs_perform_write() 107 .range_start = iocb->ki_pos, in netfs_perform_write() 108 .range_end = iocb->ki_pos + iter->count, in netfs_perform_write() 112 unsigned int bdp_flags = (iocb->ki_flags & IOCB_NOWAIT) ? BDP_ASYNC : 0; in netfs_perform_write() 114 loff_t i_size, pos = iocb->ki_pos; in netfs_perform_write() 119 iocb->ki_flags & (IOCB_DSYNC | IOCB_SYNC)) in netfs_perform_write() 129 wreq = netfs_begin_writethrough(iocb, iter->count); in netfs_perform_write() 136 if (!is_sync_kiocb(iocb)) in netfs_perform_write() 137 wreq->iocb = iocb; in netfs_perform_write() [all …]
|
H A D | direct_read.c | 166 ssize_t netfs_unbuffered_read_iter_locked(struct kiocb *iocb, struct iov_iter *iter) in netfs_unbuffered_read_iter_locked() argument 171 bool sync = is_sync_kiocb(iocb); in netfs_unbuffered_read_iter_locked() 178 ret = kiocb_write_and_wait(iocb, orig_count); in netfs_unbuffered_read_iter_locked() 181 file_accessed(iocb->ki_filp); in netfs_unbuffered_read_iter_locked() 183 rreq = netfs_alloc_request(iocb->ki_filp->f_mapping, iocb->ki_filp, in netfs_unbuffered_read_iter_locked() 184 iocb->ki_pos, orig_count, in netfs_unbuffered_read_iter_locked() 219 rreq->iocb = iocb; in netfs_unbuffered_read_iter_locked() 226 iocb->ki_pos += rreq->transferred; in netfs_unbuffered_read_iter_locked() 246 ssize_t netfs_unbuffered_read_iter(struct kiocb *iocb, struct iov_iter *iter) in netfs_unbuffered_read_iter() argument 248 struct inode *inode = file_inode(iocb->ki_filp); in netfs_unbuffered_read_iter() [all …]
|
/linux/fs/configfs/ |
H A D | file.c | 80 static ssize_t configfs_read_iter(struct kiocb *iocb, struct iov_iter *to) in configfs_read_iter() argument 82 struct file *file = iocb->ki_filp; in configfs_read_iter() 93 __func__, iov_iter_count(to), iocb->ki_pos, buffer->page); in configfs_read_iter() 94 if (iocb->ki_pos >= buffer->count) in configfs_read_iter() 96 retval = copy_to_iter(buffer->page + iocb->ki_pos, in configfs_read_iter() 97 buffer->count - iocb->ki_pos, to); in configfs_read_iter() 98 iocb->ki_pos += retval; in configfs_read_iter() 106 static ssize_t configfs_bin_read_iter(struct kiocb *iocb, struct iov_iter *to) in configfs_bin_read_iter() argument 108 struct file *file = iocb->ki_filp; in configfs_bin_read_iter() 168 if (iocb->ki_pos >= buffer->bin_buffer_size) in configfs_bin_read_iter() [all …]
|
/linux/fs/erofs/ |
H A D | fileio.c | 11 struct kiocb iocb; member 21 static void erofs_fileio_ki_complete(struct kiocb *iocb, long ret) in erofs_fileio_ki_complete() argument 24 container_of(iocb, struct erofs_fileio_rq, iocb); in erofs_fileio_ki_complete() 53 rq->iocb.ki_pos = rq->bio.bi_iter.bi_sector << SECTOR_SHIFT; in erofs_fileio_rq_submit() 54 rq->iocb.ki_ioprio = get_current_ioprio(); in erofs_fileio_rq_submit() 55 rq->iocb.ki_complete = erofs_fileio_ki_complete; in erofs_fileio_rq_submit() 57 rq->iocb.ki_filp->f_mode & FMODE_CAN_ODIRECT) in erofs_fileio_rq_submit() 58 rq->iocb.ki_flags = IOCB_DIRECT; in erofs_fileio_rq_submit() 61 ret = vfs_iocb_iter_read(rq->iocb.ki_filp, &rq->iocb, &iter); in erofs_fileio_rq_submit() 63 erofs_fileio_ki_complete(&rq->iocb, ret); in erofs_fileio_rq_submit() [all …]
|
/linux/fs/cachefiles/ |
H A D | io.c | 19 struct kiocb iocb; member 38 fput(ki->iocb.ki_filp); in cachefiles_put_kiocb() 46 static void cachefiles_read_complete(struct kiocb *iocb, long ret) in cachefiles_read_complete() argument 48 struct cachefiles_kiocb *ki = container_of(iocb, struct cachefiles_kiocb, iocb); in cachefiles_read_complete() 49 struct inode *inode = file_inode(ki->iocb.ki_filp); in cachefiles_read_complete() 139 ki->iocb.ki_filp = file; in cachefiles_read() 140 ki->iocb.ki_pos = start_pos + skipped; in cachefiles_read() 141 ki->iocb.ki_flags = IOCB_DIRECT; in cachefiles_read() 142 ki->iocb.ki_ioprio = get_current_ioprio(); in cachefiles_read() 151 ki->iocb.ki_complete = cachefiles_read_complete; in cachefiles_read() [all …]
|
/linux/mm/ |
H A D | page_io.c | 326 struct kiocb iocb; 346 static void sio_write_complete(struct kiocb *iocb, long ret) in sio_write_complete() 348 struct swap_iocb *sio = container_of(iocb, struct swap_iocb, iocb); in sio_write_complete() 389 if (sio->iocb.ki_filp != swap_file || in swap_writepage_fs() 390 sio->iocb.ki_pos + sio->len != pos) { in swap_writepage_fs() 397 init_sync_kiocb(&sio->iocb, swap_file); in swap_writepage_fs() 398 sio->iocb.ki_complete = sio_write_complete; in swap_writepage_fs() 399 sio->iocb.ki_pos = pos; in swap_writepage_fs() 480 struct address_space *mapping = sio->iocb in swap_write_unplug() 324 struct kiocb iocb; global() member 344 sio_write_complete(struct kiocb * iocb,long ret) sio_write_complete() argument 487 sio_read_complete(struct kiocb * iocb,long ret) sio_read_complete() argument [all...] |
H A D | filemap.c | 2406 static int filemap_update_page(struct kiocb *iocb, in filemap_update_page() argument 2412 if (iocb->ki_flags & IOCB_NOWAIT) { in filemap_update_page() 2421 if (iocb->ki_flags & (IOCB_NOWAIT | IOCB_NOIO)) in filemap_update_page() 2423 if (!(iocb->ki_flags & IOCB_WAITQ)) { in filemap_update_page() 2432 error = __folio_lock_async(folio, iocb->ki_waitq); in filemap_update_page() 2442 if (filemap_range_uptodate(mapping, iocb->ki_pos, count, folio, in filemap_update_page() 2447 if (iocb->ki_flags & (IOCB_NOIO | IOCB_NOWAIT | IOCB_WAITQ)) in filemap_update_page() 2450 error = filemap_read_folio(iocb->ki_filp, mapping->a_ops->read_folio, in filemap_update_page() 2510 static int filemap_readahead(struct kiocb *iocb, struct file *file, in filemap_readahead() argument 2516 if (iocb->ki_flags & IOCB_NOIO) in filemap_readahead() [all …]
|
/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/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/fs/gfs2/ |
H A D | file.c | 779 struct kiocb *iocb, in should_fault_in_pages() argument 796 offs = offset_in_page(iocb->ki_pos); in should_fault_in_pages() 810 static ssize_t gfs2_file_direct_read(struct kiocb *iocb, struct iov_iter *to, in gfs2_file_direct_read() argument 813 struct file *file = iocb->ki_filp; in gfs2_file_direct_read() 846 ret = iomap_dio_rw(iocb, to, &gfs2_iomap_ops, NULL, in gfs2_file_direct_read() 856 if (should_fault_in_pages(to, iocb, &prev_count, &window_size)) { in gfs2_file_direct_read() 873 static ssize_t gfs2_file_direct_write(struct kiocb *iocb, struct iov_iter *from, in gfs2_file_direct_write() argument 876 struct file *file = iocb->ki_filp; in gfs2_file_direct_write() 908 if (iocb->ki_pos + iov_iter_count(from) > i_size_read(&ip->i_inode)) in gfs2_file_direct_write() 912 ret = iomap_dio_rw(iocb, from, &gfs2_iomap_ops, NULL, in gfs2_file_direct_write() [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/btrfs/ |
H A D | direct-io.c | 761 static ssize_t btrfs_dio_read(struct kiocb *iocb, struct iov_iter *iter, in btrfs_dio_read() argument 766 return iomap_dio_rw(iocb, iter, &btrfs_dio_iomap_ops, &btrfs_dio_ops, in btrfs_dio_read() 770 static struct iomap_dio *btrfs_dio_write(struct kiocb *iocb, struct iov_iter *iter, in btrfs_dio_write() argument 775 return __iomap_dio_rw(iocb, iter, &btrfs_dio_iomap_ops, &btrfs_dio_ops, in btrfs_dio_write() 793 ssize_t btrfs_direct_write(struct kiocb *iocb, struct iov_iter *from) in btrfs_direct_write() argument 795 struct file *file = iocb->ki_filp; in btrfs_direct_write() 807 if (iocb->ki_flags & IOCB_NOWAIT) in btrfs_direct_write() 816 if (iocb->ki_pos + iov_iter_count(from) <= i_size_read(inode) && IS_NOSEC(inode)) in btrfs_direct_write() 831 ret = generic_write_checks(iocb, from); in btrfs_direct_write() 837 ret = btrfs_write_check(iocb, ret); in btrfs_direct_write() [all …]
|
/linux/drivers/scsi/qla2xxx/ |
H A D | qla_target.c | 106 int fn, void *iocb, int flags); 532 memcpy(e->u.nack.iocb, ntfy, sizeof(struct imm_ntfy_from_isp)); in qla24xx_post_nack_work() 679 (struct imm_ntfy_from_isp *)e->u.nack.iocb, e->u.nack.type); in qla24xx_do_nack_work() 778 struct imm_ntfy_from_isp *iocb) in qlt_plogi_ack_find_add() argument 789 pla->iocb.u.isp24.port_name); in qlt_plogi_ack_find_add() 790 qlt_send_term_imm_notif(vha, &pla->iocb, 1); in qlt_plogi_ack_find_add() 791 memcpy(&pla->iocb, iocb, sizeof(pla->iocb)); in qlt_plogi_ack_find_add() 804 memcpy(&pla->iocb, iocb, sizeof(pla->iocb)); in qlt_plogi_ack_find_add() 814 struct imm_ntfy_from_isp *iocb = &pla->iocb; in qlt_plogi_ack_unref() local 827 " exch %#x ox_id %#x\n", iocb->u.isp24.port_name, in qlt_plogi_ack_unref() [all …]
|
/linux/fs/orangefs/ |
H A D | file.c | 323 static ssize_t orangefs_file_read_iter(struct kiocb *iocb, in orangefs_file_read_iter() argument 329 down_read(&file_inode(iocb->ki_filp)->i_rwsem); in orangefs_file_read_iter() 330 ret = orangefs_revalidate_mapping(file_inode(iocb->ki_filp)); in orangefs_file_read_iter() 334 ret = generic_file_read_iter(iocb, iter); in orangefs_file_read_iter() 336 up_read(&file_inode(iocb->ki_filp)->i_rwsem); in orangefs_file_read_iter() 360 static ssize_t orangefs_file_write_iter(struct kiocb *iocb, in orangefs_file_write_iter() argument 366 if (iocb->ki_pos > i_size_read(file_inode(iocb->ki_filp))) { in orangefs_file_write_iter() 367 ret = orangefs_revalidate_mapping(file_inode(iocb->ki_filp)); in orangefs_file_write_iter() 372 ret = generic_file_write_iter(iocb, iter); in orangefs_file_write_iter()
|