diff --git a/io_uring/rw.c b/io_uring/rw.c index 9a4370f03b66..3fe4a1b36b1a 100644 --- a/io_uring/rw.c +++ b/io_uring/rw.c @@ -962,6 +962,8 @@ int io_read_mshot(struct io_kiocb *req, unsigned int issue_flags) io_kbuf_recycle(req, issue_flags); if (ret < 0) req_set_fail(req); + } else if (!(req->flags & REQ_F_APOLL_MULTISHOT)) { + cflags = io_put_kbuf(req, issue_flags); } else { /* * Any successful return value will keep the multishot read