Lines Matching defs:iocb
75 * @iocb: The operation parameters
79 * Copy data into pagecache folios attached to the inode specified by @iocb.
87 ssize_t netfs_perform_write(struct kiocb *iocb, struct iov_iter *iter,
90 struct file *file = iocb->ki_filp;
98 .range_start = iocb->ki_pos,
99 .range_end = iocb->ki_pos + iter->count,
103 unsigned int bdp_flags = (iocb->ki_flags & IOCB_NOWAIT) ? BDP_ASYNC : 0;
105 loff_t pos = iocb->ki_pos;
109 if (unlikely(iocb->ki_flags & (IOCB_DSYNC | IOCB_SYNC))
119 wreq = netfs_begin_writethrough(iocb, iter->count);
126 if (!is_sync_kiocb(iocb))
127 wreq->iocb = iocb;
432 iocb->ki_pos += written;
447 * @iocb: IO state structure (file, offset, etc.)
468 ssize_t netfs_buffered_write_iter_locked(struct kiocb *iocb, struct iov_iter *from,
471 struct file *file = iocb->ki_filp;
475 trace_netfs_write_iter(iocb, from);
485 if (iocb->ki_pos > i_size_read(inode)) {
487 iocb->ki_pos,
488 iocb->ki_flags & IOCB_NOWAIT);
493 return netfs_perform_write(iocb, from, netfs_group);
499 * @iocb: IO state structure
510 ssize_t netfs_file_write_iter(struct kiocb *iocb, struct iov_iter *from)
512 struct file *file = iocb->ki_filp;
517 _enter("%llx,%zx,%llx", iocb->ki_pos, iov_iter_count(from), i_size_read(inode));
522 if ((iocb->ki_flags & IOCB_DIRECT) ||
524 return netfs_unbuffered_write_iter(iocb, from);
530 ret = generic_write_checks(iocb, from);
532 ret = netfs_buffered_write_iter_locked(iocb, from, NULL);
535 ret = generic_write_sync(iocb, ret);