io_uring/poll: serialize poll linked timer start with poll removal
authorJens Axboe <axboe@kernel.dk>
Sun, 18 Jun 2023 01:50:24 +0000 (19:50 -0600)
committerJens Axboe <axboe@kernel.dk>
Sun, 18 Jun 2023 02:21:52 +0000 (20:21 -0600)
commitef7dfac51d8ed961b742218f526bd589f3900a59
tree4c7daa6f4d2b65aef33d3e115bf8775aa4163fde
parentadeaa3f290ecf7f6a6a5c53219a4686cbdff5fbd
io_uring/poll: serialize poll linked timer start with poll removal

We selectively grab the ctx->uring_lock for poll update/removal, but
we really should grab it from the start to fully synchronize with
linked timeouts. Normally this is indeed the case, but if requests
are forced async by the application, we don't fully cover removal
and timer disarm within the uring_lock.

Make this simpler by having consistent locking state for poll removal.

Cc: stable@vger.kernel.org # 6.1+
Reported-by: Querijn Voet <querijnqyn@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
io_uring/poll.c