Lines Matching refs:kiocb
304 struct kiocb rw;
808 struct kiocb *kiocb = &req->rw; in io_do_iopoll() local
822 ret = kiocb->ki_filp->f_op->iopoll(kiocb, spin); in io_do_iopoll()
955 static void io_complete_rw(struct kiocb *kiocb, long res, long res2) in io_complete_rw() argument
957 struct io_kiocb *req = container_of(kiocb, struct io_kiocb, rw); in io_complete_rw()
959 if (kiocb->ki_flags & IOCB_WRITE) in io_complete_rw()
968 static void io_complete_rw_iopoll(struct kiocb *kiocb, long res, long res2) in io_complete_rw_iopoll() argument
970 struct io_kiocb *req = container_of(kiocb, struct io_kiocb, rw); in io_complete_rw_iopoll()
972 if (kiocb->ki_flags & IOCB_WRITE) in io_complete_rw_iopoll()
1080 struct kiocb *kiocb = &req->rw; in io_prep_rw() local
1099 kiocb->ki_pos = READ_ONCE(sqe->off); in io_prep_rw()
1100 kiocb->ki_flags = iocb_flags(kiocb->ki_filp); in io_prep_rw()
1101 kiocb->ki_hint = ki_hint_validate(file_write_hint(kiocb->ki_filp)); in io_prep_rw()
1109 kiocb->ki_ioprio = ioprio; in io_prep_rw()
1111 kiocb->ki_ioprio = get_current_ioprio(); in io_prep_rw()
1113 ret = kiocb_set_rw_flags(kiocb, READ_ONCE(sqe->rw_flags)); in io_prep_rw()
1118 if ((kiocb->ki_flags & IOCB_NOWAIT) || in io_prep_rw()
1123 kiocb->ki_flags |= IOCB_NOWAIT; in io_prep_rw()
1126 if (!(kiocb->ki_flags & IOCB_DIRECT) || in io_prep_rw()
1127 !kiocb->ki_filp->f_op->iopoll) in io_prep_rw()
1130 kiocb->ki_flags |= IOCB_HIPRI; in io_prep_rw()
1131 kiocb->ki_complete = io_complete_rw_iopoll; in io_prep_rw()
1134 if (kiocb->ki_flags & IOCB_HIPRI) in io_prep_rw()
1136 kiocb->ki_complete = io_complete_rw; in io_prep_rw()
1141 static inline void io_rw_done(struct kiocb *kiocb, ssize_t ret) in io_rw_done() argument
1158 kiocb->ki_complete(kiocb, ret, 0); in io_rw_done()
1273 static inline bool io_should_merge(struct async_list *al, struct kiocb *kiocb) in io_should_merge() argument
1275 if (al->file == kiocb->ki_filp) { in io_should_merge()
1287 if (kiocb->ki_pos >= start && kiocb->ki_pos <= end) in io_should_merge()
1304 struct kiocb *kiocb = &req->rw; in io_async_list_note() local
1305 struct file *filp = kiocb->ki_filp; in io_async_list_note()
1307 if (io_should_merge(async_list, kiocb)) { in io_async_list_note()
1326 async_list->io_start = kiocb->ki_pos; in io_async_list_note()
1336 static ssize_t loop_rw_iter(int rw, struct file *file, struct kiocb *kiocb, in loop_rw_iter() argument
1346 if (kiocb->ki_flags & IOCB_HIPRI) in loop_rw_iter()
1348 if (kiocb->ki_flags & IOCB_NOWAIT) in loop_rw_iter()
1357 iovec.iov_len, &kiocb->ki_pos); in loop_rw_iter()
1360 iovec.iov_len, &kiocb->ki_pos); in loop_rw_iter()
1381 struct kiocb *kiocb = &req->rw; in io_read() local
1390 file = kiocb->ki_filp; in io_read()
1404 ret = rw_verify_area(READ, file, &kiocb->ki_pos, iov_count); in io_read()
1409 ret2 = call_read_iter(file, kiocb, &iter); in io_read()
1411 ret2 = loop_rw_iter(READ, file, kiocb, &iter); in io_read()
1427 io_rw_done(kiocb, ret2); in io_read()
1446 struct kiocb *kiocb = &req->rw; in io_write() local
1456 file = kiocb->ki_filp; in io_write()
1470 if (force_nonblock && !(kiocb->ki_flags & IOCB_DIRECT)) { in io_write()
1477 ret = rw_verify_area(WRITE, file, &kiocb->ki_pos, iov_count); in io_write()
1494 kiocb->ki_flags |= IOCB_WRITE; in io_write()
1497 ret2 = call_write_iter(file, kiocb, &iter); in io_write()
1499 ret2 = loop_rw_iter(WRITE, file, kiocb, &iter); in io_write()
1501 io_rw_done(kiocb, ret2); in io_write()