Lines Matching refs:iocb
202 struct kiocb *iocb, in xfs_ilock_iocb() argument
205 struct xfs_inode *ip = XFS_I(file_inode(iocb->ki_filp)); in xfs_ilock_iocb()
207 if (iocb->ki_flags & IOCB_NOWAIT) { in xfs_ilock_iocb()
219 struct kiocb *iocb, in xfs_file_dio_read() argument
222 struct xfs_inode *ip = XFS_I(file_inode(iocb->ki_filp)); in xfs_file_dio_read()
225 trace_xfs_file_direct_read(iocb, to); in xfs_file_dio_read()
230 file_accessed(iocb->ki_filp); in xfs_file_dio_read()
232 ret = xfs_ilock_iocb(iocb, XFS_IOLOCK_SHARED); in xfs_file_dio_read()
235 ret = iomap_dio_rw(iocb, to, &xfs_read_iomap_ops, NULL, 0, NULL, 0); in xfs_file_dio_read()
243 struct kiocb *iocb, in xfs_file_dax_read() argument
246 struct xfs_inode *ip = XFS_I(iocb->ki_filp->f_mapping->host); in xfs_file_dax_read()
249 trace_xfs_file_dax_read(iocb, to); in xfs_file_dax_read()
254 ret = xfs_ilock_iocb(iocb, XFS_IOLOCK_SHARED); in xfs_file_dax_read()
257 ret = dax_iomap_rw(iocb, to, &xfs_read_iomap_ops); in xfs_file_dax_read()
260 file_accessed(iocb->ki_filp); in xfs_file_dax_read()
266 struct kiocb *iocb, in xfs_file_buffered_read() argument
269 struct xfs_inode *ip = XFS_I(file_inode(iocb->ki_filp)); in xfs_file_buffered_read()
272 trace_xfs_file_buffered_read(iocb, to); in xfs_file_buffered_read()
274 ret = xfs_ilock_iocb(iocb, XFS_IOLOCK_SHARED); in xfs_file_buffered_read()
277 ret = generic_file_read_iter(iocb, to); in xfs_file_buffered_read()
285 struct kiocb *iocb, in xfs_file_read_iter() argument
288 struct inode *inode = file_inode(iocb->ki_filp); in xfs_file_read_iter()
298 ret = xfs_file_dax_read(iocb, to); in xfs_file_read_iter()
299 else if (iocb->ki_flags & IOCB_DIRECT) in xfs_file_read_iter()
300 ret = xfs_file_dio_read(iocb, to); in xfs_file_read_iter()
302 ret = xfs_file_buffered_read(iocb, to); in xfs_file_read_iter()
318 struct kiocb *iocb, in xfs_file_write_checks() argument
322 struct file *file = iocb->ki_filp; in xfs_file_write_checks()
331 error = generic_write_checks(iocb, from); in xfs_file_write_checks()
335 if (iocb->ki_flags & IOCB_NOWAIT) { in xfs_file_write_checks()
353 error = xfs_ilock_iocb(iocb, *iolock); in xfs_file_write_checks()
381 if (iocb->ki_pos <= i_size_read(inode)) in xfs_file_write_checks()
386 if (iocb->ki_pos > isize) { in xfs_file_write_checks()
389 if (iocb->ki_flags & IOCB_NOWAIT) in xfs_file_write_checks()
412 trace_xfs_zero_eof(ip, isize, iocb->ki_pos - isize); in xfs_file_write_checks()
413 error = xfs_zero_range(ip, isize, iocb->ki_pos - isize, NULL); in xfs_file_write_checks()
420 return kiocb_modified(iocb); in xfs_file_write_checks()
425 struct kiocb *iocb, in xfs_dio_write_end_io() argument
430 struct inode *inode = file_inode(iocb->ki_filp); in xfs_dio_write_end_io()
432 loff_t offset = iocb->ki_pos; in xfs_dio_write_end_io()
520 struct kiocb *iocb, in xfs_file_dio_write_aligned() argument
526 ret = xfs_ilock_iocb(iocb, iolock); in xfs_file_dio_write_aligned()
529 ret = xfs_file_write_checks(iocb, from, &iolock); in xfs_file_dio_write_aligned()
542 trace_xfs_file_direct_write(iocb, from); in xfs_file_dio_write_aligned()
543 ret = iomap_dio_rw(iocb, from, &xfs_direct_write_iomap_ops, in xfs_file_dio_write_aligned()
571 struct kiocb *iocb, in xfs_file_dio_write_unaligned() argument
585 if (iocb->ki_pos > isize || iocb->ki_pos + count >= isize) { in xfs_file_dio_write_unaligned()
586 if (iocb->ki_flags & IOCB_NOWAIT) in xfs_file_dio_write_unaligned()
593 ret = xfs_ilock_iocb(iocb, iolock); in xfs_file_dio_write_unaligned()
602 trace_xfs_reflink_bounce_dio_write(iocb, from); in xfs_file_dio_write_unaligned()
607 ret = xfs_file_write_checks(iocb, from, &iolock); in xfs_file_dio_write_unaligned()
620 trace_xfs_file_direct_write(iocb, from); in xfs_file_dio_write_unaligned()
621 ret = iomap_dio_rw(iocb, from, &xfs_direct_write_iomap_ops, in xfs_file_dio_write_unaligned()
629 if (ret == -EAGAIN && !(iocb->ki_flags & IOCB_NOWAIT)) { in xfs_file_dio_write_unaligned()
643 struct kiocb *iocb, in xfs_file_dio_write() argument
646 struct xfs_inode *ip = XFS_I(file_inode(iocb->ki_filp)); in xfs_file_dio_write()
651 if ((iocb->ki_pos | count) & target->bt_logical_sectormask) in xfs_file_dio_write()
653 if ((iocb->ki_pos | count) & ip->i_mount->m_blockmask) in xfs_file_dio_write()
654 return xfs_file_dio_write_unaligned(ip, iocb, from); in xfs_file_dio_write()
655 return xfs_file_dio_write_aligned(ip, iocb, from); in xfs_file_dio_write()
660 struct kiocb *iocb, in xfs_file_dax_write() argument
663 struct inode *inode = iocb->ki_filp->f_mapping->host; in xfs_file_dax_write()
669 ret = xfs_ilock_iocb(iocb, iolock); in xfs_file_dax_write()
672 ret = xfs_file_write_checks(iocb, from, &iolock); in xfs_file_dax_write()
676 pos = iocb->ki_pos; in xfs_file_dax_write()
678 trace_xfs_file_dax_write(iocb, from); in xfs_file_dax_write()
679 ret = dax_iomap_rw(iocb, from, &xfs_dax_write_iomap_ops); in xfs_file_dax_write()
680 if (ret > 0 && iocb->ki_pos > i_size_read(inode)) { in xfs_file_dax_write()
681 i_size_write(inode, iocb->ki_pos); in xfs_file_dax_write()
694 ret = generic_write_sync(iocb, ret); in xfs_file_dax_write()
701 struct kiocb *iocb, in xfs_file_buffered_write() argument
704 struct inode *inode = iocb->ki_filp->f_mapping->host; in xfs_file_buffered_write()
712 ret = xfs_ilock_iocb(iocb, iolock); in xfs_file_buffered_write()
716 ret = xfs_file_write_checks(iocb, from, &iolock); in xfs_file_buffered_write()
723 trace_xfs_file_buffered_write(iocb, from); in xfs_file_buffered_write()
724 ret = iomap_file_buffered_write(iocb, from, in xfs_file_buffered_write()
727 iocb->ki_pos += ret; in xfs_file_buffered_write()
764 ret = generic_write_sync(iocb, ret); in xfs_file_buffered_write()
771 struct kiocb *iocb, in xfs_file_write_iter() argument
774 struct inode *inode = iocb->ki_filp->f_mapping->host; in xfs_file_write_iter()
788 return xfs_file_dax_write(iocb, from); in xfs_file_write_iter()
790 if (iocb->ki_flags & IOCB_DIRECT) { in xfs_file_write_iter()
797 ret = xfs_file_dio_write(iocb, from); in xfs_file_write_iter()
802 return xfs_file_buffered_write(iocb, from); in xfs_file_write_iter()