io_uring: enable inline completion for more cases

Take advantage of delayed/inline completion flushing and pass right
issue flags for completion of open, open2, fadvise and poll remove
opcodes. All others either already use it or always punted and never
executed inline.

Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/0badc7512e82f7350b73bb09abbebbecbdd5dab8.1618101759.git.asml.silence@gmail.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
Pavel Begunkov 2021-04-11 01:46:29 +01:00 коммит произвёл Jens Axboe
Родитель a1fde923e3
Коммит 0bdf3398b0
1 изменённых файлов: 3 добавлений и 3 удалений

Просмотреть файл

@ -3845,7 +3845,7 @@ err:
req->flags &= ~REQ_F_NEED_CLEANUP;
if (ret < 0)
req_set_fail_links(req);
io_req_complete(req, ret);
__io_req_complete(req, issue_flags, ret, 0);
return 0;
}
@ -4123,7 +4123,7 @@ static int io_fadvise(struct io_kiocb *req, unsigned int issue_flags)
ret = vfs_fadvise(req->file, fa->offset, fa->len, fa->advice);
if (ret < 0)
req_set_fail_links(req);
io_req_complete(req, ret);
__io_req_complete(req, issue_flags, ret, 0);
return 0;
}
@ -5319,7 +5319,7 @@ static int io_poll_remove(struct io_kiocb *req, unsigned int issue_flags)
if (ret < 0)
req_set_fail_links(req);
io_req_complete(req, ret);
__io_req_complete(req, issue_flags, ret, 0);
return 0;
}