io_uring: cancel work if task_work_add() fails
authorJens Axboe <axboe@kernel.dk>
Mon, 18 May 2020 17:04:17 +0000 (11:04 -0600)
committerJens Axboe <axboe@kernel.dk>
Mon, 18 May 2020 17:14:22 +0000 (11:14 -0600)
commite3aabf9554fd04eb14cd44ae7583fc9d40edd250
tree790ecb72a74a5148aaeb551d099df7cd325ed2f5
parent948a7749454b1712f1b2f2429f9493eb3e4a89b0
io_uring: cancel work if task_work_add() fails

We currently move it to the io_wqe_manager for execution, but we cannot
safely do so as we may lack some of the state to execute it out of
context. As we cancel work anyway when the ring/task exits, just mark
this request as canceled and io_async_task_func() will do the right
thing.

Fixes: aa96bf8a9ee3 ("io_uring: use io-wq manager as backup task if task is exiting")
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c