io_cqring_ev_posted(ctx);
}
-static void io_free_req(struct io_kiocb *req, struct io_kiocb **nxt)
+static void io_free_req_find_next(struct io_kiocb *req, struct io_kiocb **nxt)
{
if (likely(!(req->flags & REQ_F_LINK))) {
__io_free_req(req);
__io_free_req(req);
}
+static void io_free_req(struct io_kiocb *req)
+{
+ io_free_req_find_next(req, NULL);
+}
+
/*
* Drop reference to request, return next in chain (if there is one) if this
* was the last reference to this request.
struct io_kiocb *nxt = NULL;
if (refcount_dec_and_test(&req->refs))
- io_free_req(req, &nxt);
+ io_free_req_find_next(req, &nxt);
if (nxt) {
if (nxtptr)
static void io_put_req(struct io_kiocb *req)
{
if (refcount_dec_and_test(&req->refs))
- io_free_req(req, NULL);
+ io_free_req(req);
}
static void io_double_put_req(struct io_kiocb *req)
if (to_free == ARRAY_SIZE(reqs))
io_free_req_many(ctx, reqs, &to_free);
} else {
- io_free_req(req, NULL);
+ io_free_req(req);
}
}
}