io_uring: don't do async setup for links' heads
authorPavel Begunkov <asml.silence@gmail.com>
Thu, 18 Feb 2021 18:29:46 +0000 (18:29 +0000)
committerJens Axboe <axboe@kernel.dk>
Thu, 18 Feb 2021 20:13:18 +0000 (13:13 -0700)
Now, as we can do async setup without holding an SQE, we can skip doing
io_req_defer_prep() for link heads, it will be tried to be executed
inline and follows all the rules of the non-linked requests.

Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c

index 7d54b0a..45f78fd 100644 (file)
@@ -6820,9 +6820,6 @@ fail_req:
                        ctx->drain_next = 0;
                }
                if (req->flags & (REQ_F_LINK | REQ_F_HARDLINK)) {
-                       ret = io_req_defer_prep(req);
-                       if (unlikely(ret))
-                               req->flags |= REQ_F_FAIL_LINK;
                        link->head = req;
                        link->last = req;
                } else {