Message ID | 20230706093208.6072-1-luhongfei@vivo.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | io_uring: A new function has been defined to make get/put exist in pairs | expand |
On 7/6/23 3:32?AM, Lu Hongfei wrote: > A new function called io_put_task_refs has been defined for pairing > with io_get_task_refs. > > In io_submit_sqes(), when req is not fully sent(i.e. left != 0), it is > necessary to call the io_put_task_refs() to recover the current process's > cached_refs and pair it with the io_get_task_refs(), which is easy to > understand and looks more regular. No point having a helper for just a single caller.
diff --git a/io_uring/io_uring.c b/io_uring/io_uring.c index e8096d502a7c..43844bc2bc62 100644 --- a/io_uring/io_uring.c +++ b/io_uring/io_uring.c @@ -2421,7 +2421,7 @@ int io_submit_sqes(struct io_ring_ctx *ctx, unsigned int nr) /* try again if it submitted nothing and can't allocate a req */ if (!ret && io_req_cache_empty(ctx)) ret = -EAGAIN; - current->io_uring->cached_refs += left; + io_put_task_refs(left); } io_submit_state_end(ctx); diff --git a/io_uring/io_uring.h b/io_uring/io_uring.h index d3606d30cf6f..bf01c56322c9 100644 --- a/io_uring/io_uring.h +++ b/io_uring/io_uring.h @@ -342,6 +342,11 @@ static inline void io_get_task_refs(int nr) io_task_refs_refill(tctx); } +static inline void io_put_task_refs(int nr) +{ + current->io_uring->cached_refs += nr; +} + static inline bool io_req_cache_empty(struct io_ring_ctx *ctx) { return !ctx->submit_state.free_list.next;
A new function called io_put_task_refs has been defined for pairing with io_get_task_refs. In io_submit_sqes(), when req is not fully sent(i.e. left != 0), it is necessary to call the io_put_task_refs() to recover the current process's cached_refs and pair it with the io_get_task_refs(), which is easy to understand and looks more regular. Signed-off-by: Lu Hongfei <luhongfei@vivo.com> --- io_uring/io_uring.c | 2 +- io_uring/io_uring.h | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-)