diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c index 16ace89613bc6e4ce343cdd2f1da85218b7dc5e7..3beed83437a3268242e1bb33a10076644dd7b338 100644 --- a/block/cfq-iosched.c +++ b/block/cfq-iosched.c @@ -4036,6 +4036,11 @@ static void *cfq_init_queue(struct request_queue *q) if (blkio_alloc_blkg_stats(&cfqg->blkg)) { kfree(cfqg); + + spin_lock(&cic_index_lock); + ida_remove(&cic_index_ida, cfqd->cic_index); + spin_unlock(&cic_index_lock); + kfree(cfqd); return NULL; }