Lines Matching defs:iocb

785 static ssize_t gfs2_file_direct_read(struct kiocb *iocb, struct iov_iter *to,
788 struct file *file = iocb->ki_filp;
801 ret = iomap_dio_rw(iocb, to, &gfs2_iomap_ops, NULL,
802 is_sync_kiocb(iocb));
810 static ssize_t gfs2_file_direct_write(struct kiocb *iocb, struct iov_iter *from,
813 struct file *file = iocb->ki_filp;
817 loff_t offset = iocb->ki_pos;
837 ret = iomap_dio_rw(iocb, from, &gfs2_iomap_ops, NULL,
838 is_sync_kiocb(iocb));
848 static ssize_t gfs2_file_read_iter(struct kiocb *iocb, struct iov_iter *to)
855 if (iocb->ki_flags & IOCB_DIRECT) {
856 ret = gfs2_file_direct_read(iocb, to, &gh);
859 iocb->ki_flags &= ~IOCB_DIRECT;
862 iocb->ki_flags |= IOCB_NOIO;
863 ret = generic_file_read_iter(iocb, to);
864 iocb->ki_flags &= ~IOCB_NOIO;
873 if (iocb->ki_flags & IOCB_NOWAIT)
876 ip = GFS2_I(iocb->ki_filp->f_mapping->host);
881 ret = generic_file_read_iter(iocb, to);
892 * @iocb: The io context
902 static ssize_t gfs2_file_write_iter(struct kiocb *iocb, struct iov_iter *from)
904 struct file *file = iocb->ki_filp;
910 gfs2_size_hint(file, iocb->ki_pos, iov_iter_count(from));
912 if (iocb->ki_flags & IOCB_APPEND) {
920 ret = generic_write_checks(iocb, from);
932 if (iocb->ki_flags & IOCB_DIRECT) {
936 ret = gfs2_file_direct_write(iocb, from, &gh);
940 iocb->ki_flags |= IOCB_DSYNC;
942 buffered = iomap_file_buffered_write(iocb, from, &gfs2_iomap_ops);
957 iocb->ki_pos += buffered;
958 ret2 = generic_write_sync(iocb, buffered);
960 (iocb->ki_pos - buffered) >> PAGE_SHIFT,
961 (iocb->ki_pos - 1) >> PAGE_SHIFT);
966 ret = iomap_file_buffered_write(iocb, from, &gfs2_iomap_ops);
969 iocb->ki_pos += ret;
970 ret = generic_write_sync(iocb, ret);