diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c index baf0b706169d..8acfb7a3b2ba 100644 --- a/block/cfq-iosched.c +++ b/block/cfq-iosched.c @@ -4299,6 +4299,8 @@ cfq_set_request(struct request_queue *q, struct request *rq, struct bio *bio, new_queue: cfqq = cic_to_cfqq(cic, is_sync); if (!cfqq || cfqq == &cfqd->oom_cfqq) { + if (cfqq) + cfq_put_queue(cfqq); cfqq = cfq_get_queue(cfqd, is_sync, cic, bio, gfp_mask); cic_set_cfqq(cic, cfqq, is_sync); } else {