block, bfq: fix error handle in bfq_init
authorweiping zhang <zhangweiping@didichuxing.com>
Fri, 18 Aug 2017 16:37:20 +0000 (00:37 +0800)
committerJens Axboe <axboe@kernel.dk>
Wed, 23 Aug 2017 21:35:54 +0000 (15:35 -0600)
if elv_register fail, bfq_pool should be free.

Signed-off-by: weiping zhang <zhangweiping@didichuxing.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/bfq-iosched.c

index 509f39998011dc580b78738c9db75357d405f283..ea2832b6698c108b750cb08810fbcb63b17aa30f 100644 (file)
@@ -5062,10 +5062,12 @@ static int __init bfq_init(void)
 
        ret = elv_register(&iosched_bfq_mq);
        if (ret)
-               goto err_pol_unreg;
+               goto slab_kill;
 
        return 0;
 
+slab_kill:
+       bfq_slab_kill();
 err_pol_unreg:
 #ifdef CONFIG_BFQ_GROUP_IOSCHED
        blkcg_policy_unregister(&blkcg_policy_bfq);