Lines Matching defs:iocb
202 struct kiocb *iocb,
205 struct xfs_inode *ip = XFS_I(file_inode(iocb->ki_filp));
207 if (iocb->ki_flags & IOCB_NOWAIT) {
219 struct kiocb *iocb,
223 struct xfs_inode *ip = XFS_I(file_inode(iocb->ki_filp));
225 ret = xfs_ilock_iocb(iocb, *lock_mode);
236 return xfs_ilock_iocb(iocb, *lock_mode);
256 struct kiocb *iocb,
259 struct xfs_inode *ip = XFS_I(file_inode(iocb->ki_filp));
262 trace_xfs_file_direct_read(iocb, to);
267 file_accessed(iocb->ki_filp);
269 ret = xfs_ilock_iocb(iocb, XFS_IOLOCK_SHARED);
272 ret = iomap_dio_rw(iocb, to, &xfs_read_iomap_ops, NULL, 0, NULL, 0);
280 struct kiocb *iocb,
283 struct xfs_inode *ip = XFS_I(iocb->ki_filp->f_mapping->host);
286 trace_xfs_file_dax_read(iocb, to);
291 ret = xfs_ilock_iocb(iocb, XFS_IOLOCK_SHARED);
294 ret = dax_iomap_rw(iocb, to, &xfs_read_iomap_ops);
297 file_accessed(iocb->ki_filp);
303 struct kiocb *iocb,
306 struct xfs_inode *ip = XFS_I(file_inode(iocb->ki_filp));
309 trace_xfs_file_buffered_read(iocb, to);
311 ret = xfs_ilock_iocb(iocb, XFS_IOLOCK_SHARED);
314 ret = generic_file_read_iter(iocb, to);
322 struct kiocb *iocb,
325 struct inode *inode = file_inode(iocb->ki_filp);
335 ret = xfs_file_dax_read(iocb, to);
336 else if (iocb->ki_flags & IOCB_DIRECT)
337 ret = xfs_file_dio_read(iocb, to);
339 ret = xfs_file_buffered_read(iocb, to);
383 struct kiocb *iocb,
387 struct file *file = iocb->ki_filp;
396 error = generic_write_checks(iocb, from);
400 if (iocb->ki_flags & IOCB_NOWAIT) {
418 error = xfs_ilock_iocb(iocb, *iolock);
446 if (iocb->ki_pos <= i_size_read(inode))
451 if (iocb->ki_pos > isize) {
454 if (iocb->ki_flags & IOCB_NOWAIT)
477 trace_xfs_zero_eof(ip, isize, iocb->ki_pos - isize);
478 error = xfs_zero_range(ip, isize, iocb->ki_pos - isize, NULL);
485 return kiocb_modified(iocb);
490 struct kiocb *iocb,
495 struct inode *inode = file_inode(iocb->ki_filp);
497 loff_t offset = iocb->ki_pos;
585 struct kiocb *iocb,
591 ret = xfs_ilock_iocb_for_write(iocb, &iolock);
594 ret = xfs_file_write_checks(iocb, from, &iolock);
607 trace_xfs_file_direct_write(iocb, from);
608 ret = iomap_dio_rw(iocb, from, &xfs_direct_write_iomap_ops,
636 struct kiocb *iocb,
650 if (iocb->ki_pos > isize || iocb->ki_pos + count >= isize) {
651 if (iocb->ki_flags & IOCB_NOWAIT)
658 ret = xfs_ilock_iocb_for_write(iocb, &iolock);
667 trace_xfs_reflink_bounce_dio_write(iocb, from);
672 ret = xfs_file_write_checks(iocb, from, &iolock);
685 trace_xfs_file_direct_write(iocb, from);
686 ret = iomap_dio_rw(iocb, from, &xfs_direct_write_iomap_ops,
694 if (ret == -EAGAIN && !(iocb->ki_flags & IOCB_NOWAIT)) {
708 struct kiocb *iocb,
711 struct xfs_inode *ip = XFS_I(file_inode(iocb->ki_filp));
716 if ((iocb->ki_pos | count) & target->bt_logical_sectormask)
718 if ((iocb->ki_pos | count) & ip->i_mount->m_blockmask)
719 return xfs_file_dio_write_unaligned(ip, iocb, from);
720 return xfs_file_dio_write_aligned(ip, iocb, from);
725 struct kiocb *iocb,
728 struct inode *inode = iocb->ki_filp->f_mapping->host;
734 ret = xfs_ilock_iocb(iocb, iolock);
737 ret = xfs_file_write_checks(iocb, from, &iolock);
741 pos = iocb->ki_pos;
743 trace_xfs_file_dax_write(iocb, from);
744 ret = dax_iomap_rw(iocb, from, &xfs_dax_write_iomap_ops);
745 if (ret > 0 && iocb->ki_pos > i_size_read(inode)) {
746 i_size_write(inode, iocb->ki_pos);
759 ret = generic_write_sync(iocb, ret);
766 struct kiocb *iocb,
769 struct inode *inode = iocb->ki_filp->f_mapping->host;
777 ret = xfs_ilock_iocb(iocb, iolock);
781 ret = xfs_file_write_checks(iocb, from, &iolock);
785 trace_xfs_file_buffered_write(iocb, from);
786 ret = iomap_file_buffered_write(iocb, from,
823 ret = generic_write_sync(iocb, ret);
830 struct kiocb *iocb,
833 struct inode *inode = iocb->ki_filp->f_mapping->host;
847 return xfs_file_dax_write(iocb, from);
849 if (iocb->ki_flags & IOCB_DIRECT) {
856 ret = xfs_file_dio_write(iocb, from);
861 return xfs_file_buffered_write(iocb, from);