commit | 368c5481ae7c6a9719c40984faea35480d9f4872 | [log] [tgz] |
---|---|---|
author | Pavel Begunkov <asml.silence@gmail.com> | Tue Oct 13 09:43:56 2020 +0100 |
committer | Jens Axboe <axboe@kernel.dk> | Sat Oct 17 09:25:42 2020 -0600 |
tree | cfc458c06932434a70277ec75cb1db4f3d0bd778 | |
parent | 035fbafc7a54b8c7755b3c508b8f3ab6ff3c8d65 [diff] |
io_uring: don't set COMP_LOCKED if won't put __io_kill_linked_timeout() sets REQ_F_COMP_LOCKED for a linked timeout even if it can't cancel it, e.g. it's already running. It not only races with io_link_timeout_fn() for ->flags field, but also leaves the flag set and so io_link_timeout_fn() may find it and decide that it holds the lock. Hopefully, the second problem is potential. Signed-off-by: Pavel Begunkov <asml.silence@gmail.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>