io_uring: fix poll requests leaking second poll entries
authorHao Xu <haoxu@linux.alibaba.com>
Wed, 28 Jul 2021 03:03:22 +0000 (11:03 +0800)
committerJens Axboe <axboe@kernel.dk>
Wed, 28 Jul 2021 13:24:57 +0000 (07:24 -0600)
commita890d01e4ee016978776e45340e521b3bbbdf41f
tree6b3e96531fb0ea616c5feda969ae958f001fe0a2
parentef04688871f3386b6d40ade8f5c664290420f819
io_uring: fix poll requests leaking second poll entries

For pure poll requests, it doesn't remove the second poll wait entry
when it's done, neither after vfs_poll() or in the poll completion
handler. We should remove the second poll wait entry.
And we use io_poll_remove_double() rather than io_poll_remove_waitqs()
since the latter has some redundant logic.

Fixes: 88e41cf928a6 ("io_uring: add multishot mode for IORING_OP_POLL_ADD")
Cc: stable@vger.kernel.org # 5.13+
Signed-off-by: Hao Xu <haoxu@linux.alibaba.com>
Link: https://lore.kernel.org/r/20210728030322.12307-1-haoxu@linux.alibaba.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c