Lines Matching defs:iocb
73 struct kiocb * iocb; /* controlling i/o request */
156 * @iocb: target I/O control block
164 ssize_t nfs_direct_IO(struct kiocb *iocb, struct iov_iter *iter)
166 struct inode *inode = iocb->ki_filp->f_mapping->host;
175 return nfs_file_direct_read(iocb, iter, true);
176 return nfs_file_direct_write(iocb, iter, true);
246 if (dreq->iocb)
263 * Synchronous I/O uses a stack-allocated iocb. Thus we can't trust
264 * the iocb is still valid here if this is a synchronous request.
272 if (dreq->iocb) {
278 dreq->iocb->ki_complete(dreq->iocb, res, 0);
425 * @iocb: target I/O control block
443 ssize_t nfs_file_direct_read(struct kiocb *iocb, struct iov_iter *iter,
446 struct file *file = iocb->ki_filp;
456 file, count, (long long) iocb->ki_pos);
471 dreq->io_start = iocb->ki_pos;
472 dreq->ctx = get_nfs_open_context(nfs_file_open_context(iocb->ki_filp));
480 if (!is_sync_kiocb(iocb))
481 dreq->iocb = iocb;
490 requested = nfs_direct_read_schedule_iovec(dreq, iter, iocb->ki_pos);
499 iocb->ki_pos += result;
913 * @iocb: target I/O control block
932 ssize_t nfs_file_direct_write(struct kiocb *iocb, struct iov_iter *iter,
937 struct file *file = iocb->ki_filp;
945 file, iov_iter_count(iter), (long long) iocb->ki_pos);
951 result = generic_write_checks(iocb, iter);
957 pos = iocb->ki_pos;
970 dreq->ctx = get_nfs_open_context(nfs_file_open_context(iocb->ki_filp));
978 if (!is_sync_kiocb(iocb))
979 dreq->iocb = iocb;
1003 iocb->ki_pos = pos + result;
1005 generic_write_sync(iocb, result);