Commit aee1a009 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'io_uring-5.7-2020-04-24' of git://git.kernel.dk/linux-block

Pull io_uring fix from Jens Axboe:
 "Single fixup for a change that went into -rc2"

* tag 'io_uring-5.7-2020-04-24' of git://git.kernel.dk/linux-block:
  io_uring: only restore req->work for req that needs do completion
parents 81da3d3c 44575a67
...@@ -4200,17 +4200,17 @@ static void io_async_task_func(struct callback_head *cb) ...@@ -4200,17 +4200,17 @@ static void io_async_task_func(struct callback_head *cb)
spin_unlock_irq(&ctx->completion_lock); spin_unlock_irq(&ctx->completion_lock);
/* restore ->work in case we need to retry again */
memcpy(&req->work, &apoll->work, sizeof(req->work));
if (canceled) { if (canceled) {
kfree(apoll); kfree(apoll);
io_cqring_ev_posted(ctx); io_cqring_ev_posted(ctx);
req_set_fail_links(req); req_set_fail_links(req);
io_put_req(req); io_double_put_req(req);
return; return;
} }
/* restore ->work in case we need to retry again */
memcpy(&req->work, &apoll->work, sizeof(req->work));
__set_current_state(TASK_RUNNING); __set_current_state(TASK_RUNNING);
mutex_lock(&ctx->uring_lock); mutex_lock(&ctx->uring_lock);
__io_queue_sqe(req, NULL); __io_queue_sqe(req, NULL);
...@@ -4369,7 +4369,7 @@ static bool io_poll_remove_one(struct io_kiocb *req) ...@@ -4369,7 +4369,7 @@ static bool io_poll_remove_one(struct io_kiocb *req)
hash_del(&req->hash_node); hash_del(&req->hash_node);
if (apoll) { if (do_complete && apoll) {
/* /*
* restore ->work because we need to call io_req_work_drop_env. * restore ->work because we need to call io_req_work_drop_env.
*/ */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment