]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
io_uring/rw: recycle buffers manually for non-mshot reads
authorJens Axboe <axboe@kernel.dk>
Thu, 21 Aug 2025 02:03:35 +0000 (20:03 -0600)
committerJens Axboe <axboe@kernel.dk>
Sun, 24 Aug 2025 17:41:12 +0000 (11:41 -0600)
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 <axboe@kernel.dk>
io_uring/rw.c

index ef94cdde5f1f761fb16aa96d956ec6b5b10beb3a..2b106f644383f755a46511f99ecb3f4fc9e40862 100644 (file)
@@ -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;
 }