cfq-iosched: free cic_index if cfqd allocation fails
When struct cfq_data allocation fails, cic_index need to be freed. Signed-off-by: Namhyung Kim <namhyung@gmail.com> Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
This commit is contained in:
parent
20359f27e8
commit
1547010e6e
1 changed files with 5 additions and 1 deletions
|
@ -3973,8 +3973,12 @@ static void *cfq_init_queue(struct request_queue *q)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
cfqd = kmalloc_node(sizeof(*cfqd), GFP_KERNEL | __GFP_ZERO, q->node);
|
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;
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Don't need take queue_lock in the routine, since we are
|
* Don't need take queue_lock in the routine, since we are
|
||||||
|
|
Loading…
Add table
Reference in a new issue