io_uring: end waiting before task cancel attempts

Get rid of TASK_UNINTERRUPTIBLE and waiting with finish_wait before
going for next iteration in __io_uring_task_cancel(), because
__io_uring_files_cancel() doesn't expect that sheduling is disallowed.

Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
Pavel Begunkov 2020-12-20 13:21:44 +00:00 committed by Jens Axboe
parent 55583d72e2
commit f57555eda9

View File

@ -8989,9 +8989,9 @@ void __io_uring_task_cancel(void)
if (inflight != tctx_inflight(tctx)) if (inflight != tctx_inflight(tctx))
continue; continue;
schedule(); schedule();
finish_wait(&tctx->wait, &wait);
} while (1); } while (1);
finish_wait(&tctx->wait, &wait);
atomic_dec(&tctx->in_idle); atomic_dec(&tctx->in_idle);
} }