elevator: fix memory leak in ->elevator_init_fn
PATCH 1/1 elevator: fix memory leak in ->elevator_init_fn
In ->elevator_init_fn, if we fail to call kzalloc_node, we should release elevator queue space which is allocated previously, otherwise it will cause memory leak.
Signed-off-by Chao Yu <[email protected]>
--- block/cfq-iosched.c | 1 + block/deadline-iosched.c | 1 + block/noop-iosched.c | 1 + 3 files changed, 3 insertions(+)
block/cfq-iosched.c +1 -0
@@ -4391,6 +4391,7 @@ static int cfq_init_queue(struct request_queue *q, struct elevator_type *e) cfqd =kzalloc_node (sizeof (*cfqd),GFP_KERNEL , q->node);if (!cfqd) {kobject_put (&eq->kobj); +kfree (eq);return -ENOMEM ; } eq->elevator_data = cfqd;
block/deadline-iosched.c +1 -0
@@ -349,6 +349,7 @@ static int deadline_init_queue(struct request_queue *q, struct elevator_type *e) dd =kzalloc_node (sizeof (*dd),GFP_KERNEL , q->node);if (!dd) {kobject_put (&eq->kobj); +kfree (eq);return -ENOMEM ; } eq->elevator_data = dd;
block/noop-iosched.c +1 -0
@@ -71,6 +71,7 @@ static int noop_init_queue(struct request_queue *q, struct elevator_type *e) nd =kmalloc_node (sizeof (*nd),GFP_KERNEL , q->node);if (!nd) {kobject_put (&eq->kobj); +kfree (eq);return -ENOMEM ; } eq->elevator_data = nd;
Signature · 1 line
2.3.3
Quoted 5 lines · Chao Yu
In ->elevator_init_fn, if we fail to call
kzalloc_node, we should release elevator queue space which is allocated previously, otherwise it will cause memory leak.Signed-off-by Chao Yu <[email protected]>
Acked-by Jeff Moyer <[email protected]>