lkml.org 
[lkml]   [2020]   [Mar]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 1/9] io_uring: clean up io_close
    Date
    Don't abuse labels for plain and straightworward code.

    Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
    ---
    fs/io_uring.c | 21 ++++++++++-----------
    1 file changed, 10 insertions(+), 11 deletions(-)

    diff --git a/fs/io_uring.c b/fs/io_uring.c
    index fb8fe0bd5e18..ff6cc05b86c7 100644
    --- a/fs/io_uring.c
    +++ b/fs/io_uring.c
    @@ -3030,8 +3030,16 @@ static int io_close(struct io_kiocb *req, struct io_kiocb **nxt,
    return ret;

    /* if the file has a flush method, be safe and punt to async */
    - if (req->close.put_file->f_op->flush && !io_wq_current_is_worker())
    - goto eagain;
    + if (req->close.put_file->f_op->flush && force_nonblock) {
    + req->work.func = io_close_finish;
    + /*
    + * Do manual async queue here to avoid grabbing files - we don't
    + * need the files, and it'll cause io_close_finish() to close
    + * the file again and cause a double CQE entry for this request
    + */
    + io_queue_async_work(req);
    + return 0;
    + }

    /*
    * No ->flush(), safely close from here and just punt the
    @@ -3039,15 +3047,6 @@ static int io_close(struct io_kiocb *req, struct io_kiocb **nxt,
    */
    __io_close_finish(req, nxt);
    return 0;
    -eagain:
    - req->work.func = io_close_finish;
    - /*
    - * Do manual async queue here to avoid grabbing files - we don't
    - * need the files, and it'll cause io_close_finish() to close
    - * the file again and cause a double CQE entry for this request
    - */
    - io_queue_async_work(req);
    - return 0;
    }

    static int io_prep_sfr(struct io_kiocb *req, const struct io_uring_sqe *sqe)
    --
    2.24.0
    \
     
     \ /
      Last update: 2020-03-01 17:19    [W:4.686 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site