aboutsummaryrefslogtreecommitdiffstats
path: root/block/elevator.c
diff options
context:
space:
mode:
Diffstat (limited to 'block/elevator.c')
-rw-r--r--block/elevator.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/block/elevator.c b/block/elevator.c
index 3bbb48f430e4..84d63943f2de 100644
--- a/block/elevator.c
+++ b/block/elevator.c
@@ -157,7 +157,7 @@ struct elevator_queue *elevator_alloc(struct request_queue *q,
157 157
158 eq = kzalloc_node(sizeof(*eq), GFP_KERNEL, q->node); 158 eq = kzalloc_node(sizeof(*eq), GFP_KERNEL, q->node);
159 if (unlikely(!eq)) 159 if (unlikely(!eq))
160 goto err; 160 return NULL;
161 161
162 eq->type = e; 162 eq->type = e;
163 kobject_init(&eq->kobj, &elv_ktype); 163 kobject_init(&eq->kobj, &elv_ktype);
@@ -165,10 +165,6 @@ struct elevator_queue *elevator_alloc(struct request_queue *q,
165 hash_init(eq->hash); 165 hash_init(eq->hash);
166 166
167 return eq; 167 return eq;
168err:
169 kfree(eq);
170 elevator_put(e);
171 return NULL;
172} 168}
173EXPORT_SYMBOL(elevator_alloc); 169EXPORT_SYMBOL(elevator_alloc);
174 170
@@ -810,6 +806,8 @@ int elv_register_queue(struct request_queue *q)
810 } 806 }
811 kobject_uevent(&e->kobj, KOBJ_ADD); 807 kobject_uevent(&e->kobj, KOBJ_ADD);
812 e->registered = 1; 808 e->registered = 1;
809 if (e->type->ops.elevator_registered_fn)
810 e->type->ops.elevator_registered_fn(q);
813 } 811 }
814 return error; 812 return error;
815} 813}