Lines Matching refs:iocb

176 	struct kiocb		*iocb,  in xfs_file_dio_aio_read()  argument
179 struct xfs_inode *ip = XFS_I(file_inode(iocb->ki_filp)); in xfs_file_dio_aio_read()
183 trace_xfs_file_direct_read(ip, count, iocb->ki_pos); in xfs_file_dio_aio_read()
188 file_accessed(iocb->ki_filp); in xfs_file_dio_aio_read()
191 ret = iomap_dio_rw(iocb, to, &xfs_iomap_ops, NULL); in xfs_file_dio_aio_read()
199 struct kiocb *iocb, in xfs_file_dax_read() argument
202 struct xfs_inode *ip = XFS_I(iocb->ki_filp->f_mapping->host); in xfs_file_dax_read()
206 trace_xfs_file_dax_read(ip, count, iocb->ki_pos); in xfs_file_dax_read()
211 if (iocb->ki_flags & IOCB_NOWAIT) { in xfs_file_dax_read()
218 ret = dax_iomap_rw(iocb, to, &xfs_iomap_ops); in xfs_file_dax_read()
221 file_accessed(iocb->ki_filp); in xfs_file_dax_read()
227 struct kiocb *iocb, in xfs_file_buffered_aio_read() argument
230 struct xfs_inode *ip = XFS_I(file_inode(iocb->ki_filp)); in xfs_file_buffered_aio_read()
233 trace_xfs_file_buffered_read(ip, iov_iter_count(to), iocb->ki_pos); in xfs_file_buffered_aio_read()
235 if (iocb->ki_flags & IOCB_NOWAIT) { in xfs_file_buffered_aio_read()
241 ret = generic_file_read_iter(iocb, to); in xfs_file_buffered_aio_read()
249 struct kiocb *iocb, in xfs_file_read_iter() argument
252 struct inode *inode = file_inode(iocb->ki_filp); in xfs_file_read_iter()
262 ret = xfs_file_dax_read(iocb, to); in xfs_file_read_iter()
263 else if (iocb->ki_flags & IOCB_DIRECT) in xfs_file_read_iter()
264 ret = xfs_file_dio_aio_read(iocb, to); in xfs_file_read_iter()
266 ret = xfs_file_buffered_aio_read(iocb, to); in xfs_file_read_iter()
282 struct kiocb *iocb, in xfs_file_aio_write_checks() argument
286 struct file *file = iocb->ki_filp; in xfs_file_aio_write_checks()
295 error = generic_write_checks(iocb, from); in xfs_file_aio_write_checks()
330 if (iocb->ki_pos > isize) { in xfs_file_aio_write_checks()
352 trace_xfs_zero_eof(ip, isize, iocb->ki_pos - isize); in xfs_file_aio_write_checks()
353 error = iomap_zero_range(inode, isize, iocb->ki_pos - isize, in xfs_file_aio_write_checks()
371 struct kiocb *iocb, in xfs_dio_write_end_io() argument
376 struct inode *inode = file_inode(iocb->ki_filp); in xfs_dio_write_end_io()
378 loff_t offset = iocb->ki_pos; in xfs_dio_write_end_io()
477 struct kiocb *iocb, in xfs_file_dio_aio_write() argument
480 struct file *file = iocb->ki_filp; in xfs_file_dio_aio_write()
493 if ((iocb->ki_pos | count) & target->bt_logical_sectormask) in xfs_file_dio_aio_write()
503 if ((iocb->ki_pos & mp->m_blockmask) || in xfs_file_dio_aio_write()
504 ((iocb->ki_pos + count) & mp->m_blockmask)) { in xfs_file_dio_aio_write()
512 trace_xfs_reflink_bounce_dio_write(ip, iocb->ki_pos, count); in xfs_file_dio_aio_write()
520 if (iocb->ki_flags & IOCB_NOWAIT) { in xfs_file_dio_aio_write()
530 ret = xfs_file_aio_write_checks(iocb, from, &iolock); in xfs_file_dio_aio_write()
549 trace_xfs_file_direct_write(ip, count, iocb->ki_pos); in xfs_file_dio_aio_write()
550 ret = iomap_dio_rw(iocb, from, &xfs_iomap_ops, &xfs_dio_write_ops); in xfs_file_dio_aio_write()
572 struct kiocb *iocb, in xfs_file_dax_write() argument
575 struct inode *inode = iocb->ki_filp->f_mapping->host; in xfs_file_dax_write()
582 if (iocb->ki_flags & IOCB_NOWAIT) { in xfs_file_dax_write()
589 ret = xfs_file_aio_write_checks(iocb, from, &iolock); in xfs_file_dax_write()
593 pos = iocb->ki_pos; in xfs_file_dax_write()
597 ret = dax_iomap_rw(iocb, from, &xfs_iomap_ops); in xfs_file_dax_write()
598 if (ret > 0 && iocb->ki_pos > i_size_read(inode)) { in xfs_file_dax_write()
599 i_size_write(inode, iocb->ki_pos); in xfs_file_dax_write()
611 ret = generic_write_sync(iocb, ret); in xfs_file_dax_write()
618 struct kiocb *iocb, in xfs_file_buffered_aio_write() argument
621 struct file *file = iocb->ki_filp; in xfs_file_buffered_aio_write()
629 if (iocb->ki_flags & IOCB_NOWAIT) in xfs_file_buffered_aio_write()
636 ret = xfs_file_aio_write_checks(iocb, from, &iolock); in xfs_file_buffered_aio_write()
643 trace_xfs_file_buffered_write(ip, iov_iter_count(from), iocb->ki_pos); in xfs_file_buffered_aio_write()
644 ret = iomap_file_buffered_write(iocb, from, &xfs_iomap_ops); in xfs_file_buffered_aio_write()
646 iocb->ki_pos += ret; in xfs_file_buffered_aio_write()
687 ret = generic_write_sync(iocb, ret); in xfs_file_buffered_aio_write()
694 struct kiocb *iocb, in xfs_file_write_iter() argument
697 struct file *file = iocb->ki_filp; in xfs_file_write_iter()
713 return xfs_file_dax_write(iocb, from); in xfs_file_write_iter()
715 if (iocb->ki_flags & IOCB_DIRECT) { in xfs_file_write_iter()
722 ret = xfs_file_dio_aio_write(iocb, from); in xfs_file_write_iter()
727 return xfs_file_buffered_aio_write(iocb, from); in xfs_file_write_iter()