forked from luck/tmp_suning_uos_patched
io_uring: put the flag changing code in the same spot
Both iocb_flags() and kiocb_set_rw_flags() are inline and modify kiocb->ki_flags. Place them close, so they can be potentially better optimised. Signed-off-by: Pavel Begunkov <asml.silence@gmail.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
6c8a313469
commit
3e577dcd73
|
@ -1867,8 +1867,11 @@ static int io_prep_rw(struct io_kiocb *req, const struct io_uring_sqe *sqe,
|
|||
req->flags |= REQ_F_CUR_POS;
|
||||
kiocb->ki_pos = req->file->f_pos;
|
||||
}
|
||||
kiocb->ki_flags = iocb_flags(kiocb->ki_filp);
|
||||
kiocb->ki_hint = ki_hint_validate(file_write_hint(kiocb->ki_filp));
|
||||
kiocb->ki_flags = iocb_flags(kiocb->ki_filp);
|
||||
ret = kiocb_set_rw_flags(kiocb, READ_ONCE(sqe->rw_flags));
|
||||
if (unlikely(ret))
|
||||
return ret;
|
||||
|
||||
ioprio = READ_ONCE(sqe->ioprio);
|
||||
if (ioprio) {
|
||||
|
@ -1880,10 +1883,6 @@ static int io_prep_rw(struct io_kiocb *req, const struct io_uring_sqe *sqe,
|
|||
} else
|
||||
kiocb->ki_ioprio = get_current_ioprio();
|
||||
|
||||
ret = kiocb_set_rw_flags(kiocb, READ_ONCE(sqe->rw_flags));
|
||||
if (unlikely(ret))
|
||||
return ret;
|
||||
|
||||
/* don't allow async punt if RWF_NOWAIT was requested */
|
||||
if ((kiocb->ki_flags & IOCB_NOWAIT) ||
|
||||
(req->file->f_flags & O_NONBLOCK))
|
||||
|
|
Loading…
Reference in New Issue
Block a user