diff options
author | Pavel Begunkov <asml.silence@gmail.com> | 2020-10-18 10:17:42 +0100 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2020-10-19 13:29:29 -0600 |
commit | dd221f46f68ad9df2c1daf7a7626c75fa9bd0bf0 (patch) | |
tree | d22723d4f4ea74432270f5caeae274279546e2db /fs/io_uring.c | |
parent | 069b89384d77c8972a8aa12588e74507714159d4 (diff) | |
download | lwn-dd221f46f68ad9df2c1daf7a7626c75fa9bd0bf0.tar.gz lwn-dd221f46f68ad9df2c1daf7a7626c75fa9bd0bf0.zip |
io_uring: inline io_poll_task_handler()
io_poll_task_handler() doesn't add clarity, inline it in its only user.
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'fs/io_uring.c')
-rw-r--r-- | fs/io_uring.c | 31 |
1 files changed, 12 insertions, 19 deletions
diff --git a/fs/io_uring.c b/fs/io_uring.c index 9f65ec8a78fe..4ca8b2aeb0bd 100644 --- a/fs/io_uring.c +++ b/fs/io_uring.c @@ -4925,32 +4925,25 @@ static void io_poll_complete(struct io_kiocb *req, __poll_t mask, int error) io_commit_cqring(ctx); } -static void io_poll_task_handler(struct io_kiocb *req, struct io_kiocb **nxt) +static void io_poll_task_func(struct callback_head *cb) { + struct io_kiocb *req = container_of(cb, struct io_kiocb, task_work); struct io_ring_ctx *ctx = req->ctx; + struct io_kiocb *nxt; if (io_poll_rewait(req, &req->poll)) { spin_unlock_irq(&ctx->completion_lock); - return; - } - - hash_del(&req->hash_node); - io_poll_complete(req, req->result, 0); - spin_unlock_irq(&ctx->completion_lock); - - *nxt = io_put_req_find_next(req); - io_cqring_ev_posted(ctx); -} + } else { + hash_del(&req->hash_node); + io_poll_complete(req, req->result, 0); + spin_unlock_irq(&ctx->completion_lock); -static void io_poll_task_func(struct callback_head *cb) -{ - struct io_kiocb *req = container_of(cb, struct io_kiocb, task_work); - struct io_ring_ctx *ctx = req->ctx; - struct io_kiocb *nxt = NULL; + nxt = io_put_req_find_next(req); + io_cqring_ev_posted(ctx); + if (nxt) + __io_req_task_submit(nxt); + } - io_poll_task_handler(req, &nxt); - if (nxt) - __io_req_task_submit(nxt); percpu_ref_put(&ctx->refs); } |