Lines Matching refs:iocb
221 struct kiocb *iocb, in xfs_file_dio_aio_read() argument
224 struct xfs_inode *ip = XFS_I(file_inode(iocb->ki_filp)); in xfs_file_dio_aio_read()
228 trace_xfs_file_direct_read(ip, count, iocb->ki_pos); in xfs_file_dio_aio_read()
233 file_accessed(iocb->ki_filp); in xfs_file_dio_aio_read()
235 if (iocb->ki_flags & IOCB_NOWAIT) { in xfs_file_dio_aio_read()
241 ret = iomap_dio_rw(iocb, to, &xfs_read_iomap_ops, NULL, in xfs_file_dio_aio_read()
242 is_sync_kiocb(iocb)); in xfs_file_dio_aio_read()
250 struct kiocb *iocb, in xfs_file_dax_read() argument
253 struct xfs_inode *ip = XFS_I(iocb->ki_filp->f_mapping->host); in xfs_file_dax_read()
257 trace_xfs_file_dax_read(ip, count, iocb->ki_pos); in xfs_file_dax_read()
262 if (iocb->ki_flags & IOCB_NOWAIT) { in xfs_file_dax_read()
269 ret = dax_iomap_rw(iocb, to, &xfs_read_iomap_ops); in xfs_file_dax_read()
272 file_accessed(iocb->ki_filp); in xfs_file_dax_read()
278 struct kiocb *iocb, in xfs_file_buffered_aio_read() argument
281 struct xfs_inode *ip = XFS_I(file_inode(iocb->ki_filp)); in xfs_file_buffered_aio_read()
284 trace_xfs_file_buffered_read(ip, iov_iter_count(to), iocb->ki_pos); in xfs_file_buffered_aio_read()
286 if (iocb->ki_flags & IOCB_NOWAIT) { in xfs_file_buffered_aio_read()
292 ret = generic_file_read_iter(iocb, to); in xfs_file_buffered_aio_read()
300 struct kiocb *iocb, in xfs_file_read_iter() argument
303 struct inode *inode = file_inode(iocb->ki_filp); in xfs_file_read_iter()
313 ret = xfs_file_dax_read(iocb, to); in xfs_file_read_iter()
314 else if (iocb->ki_flags & IOCB_DIRECT) in xfs_file_read_iter()
315 ret = xfs_file_dio_aio_read(iocb, to); in xfs_file_read_iter()
317 ret = xfs_file_buffered_aio_read(iocb, to); in xfs_file_read_iter()
333 struct kiocb *iocb, in xfs_file_aio_write_checks() argument
337 struct file *file = iocb->ki_filp; in xfs_file_aio_write_checks()
346 error = generic_write_checks(iocb, from); in xfs_file_aio_write_checks()
381 if (iocb->ki_pos > isize) { in xfs_file_aio_write_checks()
403 trace_xfs_zero_eof(ip, isize, iocb->ki_pos - isize); in xfs_file_aio_write_checks()
404 error = iomap_zero_range(inode, isize, iocb->ki_pos - isize, in xfs_file_aio_write_checks()
422 struct kiocb *iocb, in xfs_dio_write_end_io() argument
427 struct inode *inode = file_inode(iocb->ki_filp); in xfs_dio_write_end_io()
429 loff_t offset = iocb->ki_pos; in xfs_dio_write_end_io()
528 struct kiocb *iocb, in xfs_file_dio_aio_write() argument
531 struct file *file = iocb->ki_filp; in xfs_file_dio_aio_write()
543 if ((iocb->ki_pos | count) & target->bt_logical_sectormask) in xfs_file_dio_aio_write()
553 if ((iocb->ki_pos & mp->m_blockmask) || in xfs_file_dio_aio_write()
554 ((iocb->ki_pos + count) & mp->m_blockmask)) { in xfs_file_dio_aio_write()
562 trace_xfs_reflink_bounce_dio_write(ip, iocb->ki_pos, count); in xfs_file_dio_aio_write()
570 if (iocb->ki_flags & IOCB_NOWAIT) { in xfs_file_dio_aio_write()
580 ret = xfs_file_aio_write_checks(iocb, from, &iolock); in xfs_file_dio_aio_write()
599 trace_xfs_file_direct_write(ip, count, iocb->ki_pos); in xfs_file_dio_aio_write()
604 ret = iomap_dio_rw(iocb, from, &xfs_direct_write_iomap_ops, in xfs_file_dio_aio_write()
606 is_sync_kiocb(iocb) || unaligned_io); in xfs_file_dio_aio_write()
620 struct kiocb *iocb, in xfs_file_dax_write() argument
623 struct inode *inode = iocb->ki_filp->f_mapping->host; in xfs_file_dax_write()
630 if (iocb->ki_flags & IOCB_NOWAIT) { in xfs_file_dax_write()
637 ret = xfs_file_aio_write_checks(iocb, from, &iolock); in xfs_file_dax_write()
641 pos = iocb->ki_pos; in xfs_file_dax_write()
645 ret = dax_iomap_rw(iocb, from, &xfs_direct_write_iomap_ops); in xfs_file_dax_write()
646 if (ret > 0 && iocb->ki_pos > i_size_read(inode)) { in xfs_file_dax_write()
647 i_size_write(inode, iocb->ki_pos); in xfs_file_dax_write()
659 ret = generic_write_sync(iocb, ret); in xfs_file_dax_write()
666 struct kiocb *iocb, in xfs_file_buffered_aio_write() argument
669 struct file *file = iocb->ki_filp; in xfs_file_buffered_aio_write()
677 if (iocb->ki_flags & IOCB_NOWAIT) in xfs_file_buffered_aio_write()
684 ret = xfs_file_aio_write_checks(iocb, from, &iolock); in xfs_file_buffered_aio_write()
691 trace_xfs_file_buffered_write(ip, iov_iter_count(from), iocb->ki_pos); in xfs_file_buffered_aio_write()
692 ret = iomap_file_buffered_write(iocb, from, in xfs_file_buffered_aio_write()
695 iocb->ki_pos += ret; in xfs_file_buffered_aio_write()
736 ret = generic_write_sync(iocb, ret); in xfs_file_buffered_aio_write()
743 struct kiocb *iocb, in xfs_file_write_iter() argument
746 struct file *file = iocb->ki_filp; in xfs_file_write_iter()
762 return xfs_file_dax_write(iocb, from); in xfs_file_write_iter()
764 if (iocb->ki_flags & IOCB_DIRECT) { in xfs_file_write_iter()
771 ret = xfs_file_dio_aio_write(iocb, from); in xfs_file_write_iter()
776 return xfs_file_buffered_aio_write(iocb, from); in xfs_file_write_iter()