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
This commit is contained in:
+5
-5
@@ -4200,17 +4200,17 @@ static void io_async_task_func(struct callback_head *cb)
|
||||
|
||||
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) {
|
||||
kfree(apoll);
|
||||
io_cqring_ev_posted(ctx);
|
||||
req_set_fail_links(req);
|
||||
io_put_req(req);
|
||||
io_double_put_req(req);
|
||||
return;
|
||||
}
|
||||
|
||||
/* restore ->work in case we need to retry again */
|
||||
memcpy(&req->work, &apoll->work, sizeof(req->work));
|
||||
|
||||
__set_current_state(TASK_RUNNING);
|
||||
mutex_lock(&ctx->uring_lock);
|
||||
__io_queue_sqe(req, NULL);
|
||||
@@ -4369,7 +4369,7 @@ static bool io_poll_remove_one(struct io_kiocb *req)
|
||||
|
||||
hash_del(&req->hash_node);
|
||||
|
||||
if (apoll) {
|
||||
if (do_complete && apoll) {
|
||||
/*
|
||||
* restore ->work because we need to call io_req_work_drop_env.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user