On 3/8/24 9:52 AM, John Garry wrote: > On 08/03/2024 16:34, Jens Axboe wrote: >> On 2/26/24 10:36 AM, John Garry wrote: >>> diff --git a/io_uring/rw.c b/io_uring/rw.c >>> index d5e79d9bdc71..099dda3ff151 100644 >>> --- a/io_uring/rw.c >>> +++ b/io_uring/rw.c >>> @@ -719,7 +719,7 @@ static int io_rw_init_file(struct io_kiocb *req, fmode_t mode) >>> struct kiocb *kiocb = &rw->kiocb; >>> struct io_ring_ctx *ctx = req->ctx; >>> struct file *file = req->file; >>> - int ret; >>> + int ret, rw_type = (mode == FMODE_WRITE) ? WRITE : READ; >>> if (unlikely(!file || !(file->f_mode & mode))) >>> return -EBADF; >>> @@ -728,7 +728,7 @@ static int io_rw_init_file(struct io_kiocb *req, fmode_t mode) >>> req->flags |= io_file_get_flags(file); >>> kiocb->ki_flags = file->f_iocb_flags; >>> - ret = kiocb_set_rw_flags(kiocb, rw->flags); >>> + ret = kiocb_set_rw_flags(kiocb, rw->flags, rw_type); >>> if (unlikely(ret)) >>> return ret; >>> kiocb->ki_flags |= IOCB_ALLOC_CACHE; >> Not sure why you took the lazy way out here rather than just pass it in, >> now there's another branhc in the hot path. NAK. > > Are you saying to change io_rw_init_file() to this: > > io_rw_init_file(struct io_kiocb *req, fmode_t mode, int rw_type) > > And the callers can hardcode rw_type? Yep, basically making the change identical to the aio one. Not sure why you did it differently in those two spots. -- Jens Axboe