]> git.ipfire.org Git - people/arne_f/kernel.git/commit
io_uring: ensure double poll additions work with both request types
authorJens Axboe <axboe@kernel.dk>
Fri, 17 Jul 2020 23:09:27 +0000 (17:09 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 31 Jul 2020 16:47:16 +0000 (18:47 +0200)
commitaddf0dfbe249e5f2062eefdc953c656ddd406b99
treeec06d76146b4fb4f2adb1664f8717ae0b3a672dc
parentaac87e7ce02c19250c55e2d6d3559f3d01634e80
io_uring: ensure double poll additions work with both request types

commit 807abcb0883439af5ead73f3308310453b97b624 upstream.

The double poll additions were centered around doing POLL_ADD on file
descriptors that use more than one waitqueue (typically one for read,
one for write) when being polled. However, it can also end up being
triggered for when we use poll triggered retry. For that case, we cannot
safely use req->io, as that could be used by the request type itself.

Add a second io_poll_iocb pointer in the structure we allocate for poll
based retry, and ensure we use the right one from the two paths.

Fixes: 18bceab101ad ("io_uring: allow POLL_ADD with double poll_wait() users")
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/io_uring.c