Lines Matching defs:kiocb

483  * iocb unions! See also 'struct kiocb' in <linux/fs.h>
560 /* NOTE: kiocb has the file as the first member, so don't do it here */
561 struct kiocb kiocb;
2560 struct kiocb *kiocb = &req->rw.kiocb;
2575 ret = kiocb->ki_filp->f_op->iopoll(kiocb, spin);
2748 if (rw->kiocb.ki_flags & IOCB_WRITE) {
2813 static void io_complete_rw(struct kiocb *kiocb, long res, long res2)
2815 struct io_kiocb *req = container_of(kiocb, struct io_kiocb, rw.kiocb);
2824 static void io_complete_rw_iopoll(struct kiocb *kiocb, long res, long res2)
2826 struct io_kiocb *req = container_of(kiocb, struct io_kiocb, rw.kiocb);
2828 if (kiocb->ki_flags & IOCB_WRITE)
2845 * Adding the kiocb to the list AFTER submission ensures that we don't
2847 * accessing the kiocb cookie.
2875 queue_num0 = blk_qc_t_to_queue_num(list_req->rw.kiocb.ki_cookie);
2876 queue_num1 = blk_qc_t_to_queue_num(req->rw.kiocb.ki_cookie);
2963 struct kiocb *kiocb = &req->rw.kiocb;
2971 kiocb->ki_pos = READ_ONCE(sqe->off);
2972 kiocb->ki_hint = ki_hint_validate(file_write_hint(kiocb->ki_filp));
2973 kiocb->ki_flags = iocb_flags(kiocb->ki_filp);
2974 ret = kiocb_set_rw_flags(kiocb, READ_ONCE(sqe->rw_flags));
2983 if ((kiocb->ki_flags & IOCB_NOWAIT) ||
2993 kiocb->ki_ioprio = ioprio;
2995 kiocb->ki_ioprio = get_current_ioprio();
2998 if (!(kiocb->ki_flags & IOCB_DIRECT) ||
2999 !kiocb->ki_filp->f_op->iopoll)
3002 kiocb->ki_flags |= IOCB_HIPRI;
3003 kiocb->ki_complete = io_complete_rw_iopoll;
3006 if (kiocb->ki_flags & IOCB_HIPRI)
3008 kiocb->ki_complete = io_complete_rw;
3032 static inline void io_rw_done(struct kiocb *kiocb, ssize_t ret)
3049 kiocb->ki_complete(kiocb, ret, 0);
3055 struct kiocb *kiocb = &req->rw.kiocb;
3057 if (kiocb->ki_pos != -1)
3058 return &kiocb->ki_pos;
3062 kiocb->ki_pos = req->file->f_pos;
3063 return &kiocb->ki_pos;
3066 kiocb->ki_pos = 0;
3070 static void kiocb_done(struct kiocb *kiocb, ssize_t ret,
3073 struct io_kiocb *req = container_of(kiocb, struct io_kiocb, rw.kiocb);
3076 req->file->f_pos = kiocb->ki_pos;
3077 if (ret >= 0 && (kiocb->ki_complete == io_complete_rw)) {
3089 io_rw_done(kiocb, ret);
3358 static inline loff_t *io_kiocb_ppos(struct kiocb *kiocb)
3360 return (kiocb->ki_filp->f_mode & FMODE_STREAM) ? NULL : &kiocb->ki_pos;
3369 struct kiocb *kiocb = &req->rw.kiocb;
3377 * the kiocb to be handled from an async context.
3379 if (kiocb->ki_flags & IOCB_HIPRI)
3381 if (kiocb->ki_flags & IOCB_NOWAIT)
3384 ppos = io_kiocb_ppos(kiocb);
3532 req->rw.kiocb.ki_flags &= ~IOCB_WAITQ;
3554 struct kiocb *kiocb = &req->rw.kiocb;
3561 if (kiocb->ki_flags & (IOCB_DIRECT | IOCB_HIPRI))
3575 kiocb->ki_flags |= IOCB_WAITQ;
3576 kiocb->ki_flags &= ~IOCB_NOWAIT;
3577 kiocb->ki_waitq = wait;
3584 return call_read_iter(req->file, &req->rw.kiocb, iter);
3600 struct kiocb *kiocb = &req->rw.kiocb;
3629 kiocb->ki_flags &= ~IOCB_NOWAIT;
3631 kiocb->ki_flags |= IOCB_NOWAIT;
3702 kiocb->ki_flags &= ~IOCB_WAITQ;
3717 kiocb->ki_flags &= ~IOCB_WAITQ;
3721 kiocb_done(kiocb, ret, issue_flags);
3739 struct kiocb *kiocb = &req->rw.kiocb;
3763 kiocb->ki_flags &= ~IOCB_NOWAIT;
3765 kiocb->ki_flags |= IOCB_NOWAIT;
3772 if (force_nonblock && !(kiocb->ki_flags & IOCB_DIRECT) &&
3794 kiocb->ki_flags |= IOCB_WRITE;
3797 ret2 = call_write_iter(req->file, kiocb, iter);
3812 if (ret2 == -EOPNOTSUPP && (kiocb->ki_flags & IOCB_NOWAIT))
3822 kiocb_done(kiocb, ret2, issue_flags);
3828 if (kiocb->ki_flags & IOCB_WRITE)