io_uring: ensure finish_wait() is always called in __io_uring_task_cancel()
If we enter with requests pending and performm cancelations, we'll have
a different inflight count before and after calling prepare_to_wait().
This causes the loop to restart. If we actually ended up canceling
everything, or everything completed in-between, then we'll break out
of the loop without calling finish_wait() on the waitqueue. This can
trigger a warning on exit_signals(), as we leave the task state in
Put a finish_wait() after the loop to catch that case.
Cc: firstname.lastname@example.org # 5.9+
Signed-off-by: Jens Axboe <email@example.com>
1 file changed