From: Jens Axboe Date: Thu, 21 Aug 2025 02:03:35 +0000 (-0600) Subject: io_uring/rw: recycle buffers manually for non-mshot reads X-Git-Tag: v6.18-rc1~137^2~60 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d8e1dec2f860ee40623609aa6c4f22e1ee45605d;p=thirdparty%2Fkernel%2Fstable.git io_uring/rw: recycle buffers manually for non-mshot reads The mshot side of reads already does this, but the regular read path does not. This leads to needing recycling checks sprinkled in various spots in the "go async" path, like arming poll. In preparation for getting rid of those, ensure that read recycles appropriately. Link: https://lore.kernel.org/r/20250821020750.598432-8-axboe@kernel.dk Signed-off-by: Jens Axboe --- diff --git a/io_uring/rw.c b/io_uring/rw.c index ef94cdde5f1f7..2b106f644383f 100644 --- a/io_uring/rw.c +++ b/io_uring/rw.c @@ -1026,6 +1026,8 @@ int io_read(struct io_kiocb *req, unsigned int issue_flags) if (ret >= 0) return kiocb_done(req, ret, issue_flags); + if (req->flags & REQ_F_BUFFERS_COMMIT) + io_kbuf_recycle(req, req->buf_list, issue_flags); return ret; }