lkml.org 
[lkml]   [2022]   [Jun]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.18 111/181] io_uring: fix wrong arm_poll error handling
    Date
    From: Pavel Begunkov <asml.silence@gmail.com>

    [ Upstream commit 9d2ad2947a53abf5e5e6527a9eeed50a3a4cbc72 ]

    Leaving ip.error set when a request was punted to task_work execution is
    problematic, don't forget to clear it.

    Fixes: aa43477b04025 ("io_uring: poll rework")
    Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
    Link: https://lore.kernel.org/r/a6c84ef4182c6962380aebe11b35bdcb25b0ccfb.1655852245.git.asml.silence@gmail.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    fs/io_uring.c | 1 +
    1 file changed, 1 insertion(+)

    diff --git a/fs/io_uring.c b/fs/io_uring.c
    index 38ecea726254..e4186635aaa8 100644
    --- a/fs/io_uring.c
    +++ b/fs/io_uring.c
    @@ -6178,6 +6178,7 @@ static int __io_arm_poll_handler(struct io_kiocb *req,
    if (unlikely(ipt->error || !ipt->nr_entries)) {
    poll->events |= EPOLLONESHOT;
    req->apoll_events |= EPOLLONESHOT;
    + ipt->error = 0;
    }
    __io_poll_execute(req, mask, poll->events);
    return 0;
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-06-27 13:57    [W:4.053 / U:0.540 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site