diff --git a/[refs] b/[refs] index 3c7298ca2b70..2c10a321d11c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 20359f27e8ff115f7cddf3da5b3a6cdcca2e650d +refs/heads/master: 1547010e6e15a3f44f49381246421a1e19de526e diff --git a/trunk/block/cfq-iosched.c b/trunk/block/cfq-iosched.c index 6dd2179cf1a4..7c52d6888924 100644 --- a/trunk/block/cfq-iosched.c +++ b/trunk/block/cfq-iosched.c @@ -3973,8 +3973,12 @@ static void *cfq_init_queue(struct request_queue *q) return NULL; cfqd = kmalloc_node(sizeof(*cfqd), GFP_KERNEL | __GFP_ZERO, q->node); - if (!cfqd) + if (!cfqd) { + spin_lock(&cic_index_lock); + ida_remove(&cic_index_ida, i); + spin_unlock(&cic_index_lock); return NULL; + } /* * Don't need take queue_lock in the routine, since we are