io_uring/net: clear REQ_F_BL_EMPTY in the multishot retry handler
authorJens Axboe <axboe@kernel.dk>
Thu, 7 Mar 2024 20:19:46 +0000 (13:19 -0700)
committerJens Axboe <axboe@kernel.dk>
Thu, 7 Mar 2024 20:22:05 +0000 (13:22 -0700)
This flag should not be persistent across retries, so ensure we clear
it before potentially attemting a retry.

Fixes: c3f9109dbc9e ("io_uring/kbuf: flag request if buffer pool is empty after buffer pick")
Signed-off-by: Jens Axboe <axboe@kernel.dk>
io_uring/net.c

index 1640e985cd087f7c7a81d179348b862b0b79681c..e50947e7cd57641dedac531454f20718936081f3 100644 (file)
@@ -676,6 +676,7 @@ static inline void io_recv_prep_retry(struct io_kiocb *req)
 {
        struct io_sr_msg *sr = io_kiocb_to_cmd(req, struct io_sr_msg);
 
+       req->flags &= ~REQ_F_BL_EMPTY;
        sr->done_io = 0;
        sr->len = 0; /* get from the provided buffer */
        req->buf_index = sr->buf_group;