diff --git a/block/blk-mq.c b/block/blk-mq.c index c501cbd0de93f324b2f078024432a643d51e4ebc..3d759bb8a5bb5134ecc413d0c45a3ff6e9c1836e 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -1080,8 +1080,10 @@ bool blk_mq_dispatch_rq_list(struct request_queue *q, struct list_head *list, } } - if (!got_budget && !blk_mq_get_dispatch_budget(hctx)) + if (!got_budget && !blk_mq_get_dispatch_budget(hctx)) { + blk_mq_put_driver_tag(rq); break; + } list_del_init(&rq->queuelist);