[PATCH 2/5] ublk: skip 1 NULL check in ublk_cmd_list_tw_cb() loop
From: Caleb Sander Mateos
Date: Fri Mar 28 2025 - 14:05:12 EST
ublk_cmd_list_tw_cb() is always performed on a non-empty request list.
So don't check whether rq is NULL on the first iteration of the loop,
just on subsequent iterations.
Signed-off-by: Caleb Sander Mateos <csander@xxxxxxxxxxxxxxx>
---
drivers/block/ublk_drv.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/block/ublk_drv.c b/drivers/block/ublk_drv.c
index 39efe443e235..8b9780c0feab 100644
--- a/drivers/block/ublk_drv.c
+++ b/drivers/block/ublk_drv.c
@@ -1288,16 +1288,16 @@ static void ublk_cmd_list_tw_cb(struct io_uring_cmd *cmd,
struct ublk_uring_cmd_pdu *pdu = ublk_get_uring_cmd_pdu(cmd);
struct request *rq = pdu->req_list;
struct ublk_queue *ubq = rq->mq_hctx->driver_data;
struct request *next;
- while (rq) {
+ do {
next = rq->rq_next;
rq->rq_next = NULL;
ublk_dispatch_req(ubq, rq, issue_flags);
rq = next;
- }
+ } while (rq);
}
static void ublk_queue_cmd_list(struct ublk_queue *ubq, struct rq_list *l)
{
struct request *rq = rq_list_peek(l);
--
2.45.2