• J
    io_uring: ensure double poll additions work with both request types · 8d834b0c
    Jens Axboe 提交于
    to #29608102
    
    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: NJens Axboe <axboe@kernel.dk>
    Signed-off-by: NJiufei Xue <jiufei.xue@linux.alibaba.com>
    Reviewed-by: NJoseph Qi <joseph.qi@linux.alibaba.com>
    8d834b0c
io_uring.c 194.0 KB