io_uring: ensure task_work gets run as part of cancelations
authorJens Axboe <axboe@kernel.dk>
Thu, 9 Dec 2021 15:54:29 +0000 (08:54 -0700)
committerJens Axboe <axboe@kernel.dk>
Fri, 10 Dec 2021 20:56:28 +0000 (13:56 -0700)
commit78a780602075d8b00c98070fa26e389b3b3efa72
tree73d7dd6a687297596e8cd9866bab2e3d4efae939
parente47498afeca9a0c6d07eeeacc46d563555a3f677
io_uring: ensure task_work gets run as part of cancelations

If we successfully cancel a work item but that work item needs to be
processed through task_work, then we can be sleeping uninterruptibly
in io_uring_cancel_generic() and never process it. Hence we don't
make forward progress and we end up with an uninterruptible sleep
warning.

While in there, correct a comment that should be IFF, not IIF.

Reported-and-tested-by: syzbot+21e6887c0be14181206d@syzkaller.appspotmail.com
Cc: stable@vger.kernel.org
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c