]> git.baikalelectronics.ru Git - kernel.git/commit
io_uring: don't set COMP_LOCKED if won't put
authorPavel Begunkov <asml.silence@gmail.com>
Tue, 13 Oct 2020 08:43:56 +0000 (09:43 +0100)
committerJens Axboe <axboe@kernel.dk>
Sat, 17 Oct 2020 15:25:42 +0000 (09:25 -0600)
commitd0c1124a7bf279aad83b3530c6202767175f74f6
treecfc458c06932434a70277ec75cb1db4f3d0bd778
parentbb623f143caa8abd08da1db246f1a3afe7246872
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>
fs/io_uring.c