]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
lightnvm: pblk: fix error handling of pblk_lines_init()
authorWei Yongjun <weiyongjun1@huawei.com>
Tue, 9 Oct 2018 11:12:13 +0000 (13:12 +0200)
committerJens Axboe <axboe@kernel.dk>
Tue, 9 Oct 2018 14:25:08 +0000 (08:25 -0600)
In the too many bad blocks error handling case, we should release all
the allocated resources, otherwise it will cause memory leak.

Fixes: 2deeefc02dff ("lightnvm: pblk: fail gracefully on line alloc. failure")
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Reviewed-by: Hans Holmberg <hans.holmberg@cnexlabs.com>
Signed-off-by: Matias Bjørling <mb@lightnvm.io>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/lightnvm/pblk-init.c

index e0db0cb3122df873710f6913eb2dfe889871beff..e3573880dbda07648c02208fb2fc2eda4e6d214b 100644 (file)
@@ -1024,7 +1024,8 @@ static int pblk_lines_init(struct pblk *pblk)
 
        if (!nr_free_chks) {
                pblk_err(pblk, "too many bad blocks prevent for sane instance\n");
-               return -EINTR;
+               ret = -EINTR;
+               goto fail_free_lines;
        }
 
        pblk_set_provision(pblk, nr_free_chks);