lightnvm: pblk: free write buffer on init failure
authorJavier González <javier@cnexlabs.com>
Fri, 5 Jan 2018 13:16:18 +0000 (14:16 +0100)
committerJens Axboe <axboe@kernel.dk>
Fri, 5 Jan 2018 15:50:12 +0000 (08:50 -0700)
Refactor the way we free the write buffer to ensure that all entries get
freed in case of an error on the init sequence.

Signed-off-by: Javier González <javier@cnexlabs.com>
Signed-off-by: Matias Bjørling <m@bjorling.me>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/lightnvm/pblk-init.c

index 7e11926830dbba670a65584def9f54167fe9aa4b..8c40bc358b71e981aebf1bfbb5f7aca28d486107 100644 (file)
@@ -355,6 +355,8 @@ static void pblk_core_free(struct pblk *pblk)
        mempool_destroy(pblk->e_rq_pool);
        mempool_destroy(pblk->w_rq_pool);
 
+       pblk_rwb_free(pblk);
+
        pblk_free_global_caches(pblk);
 }
 
@@ -931,7 +933,6 @@ static void pblk_tear_down(struct pblk *pblk)
        pblk_pipeline_stop(pblk);
        pblk_writer_stop(pblk);
        pblk_rb_sync_l2p(&pblk->rwb);
-       pblk_rwb_free(pblk);
        pblk_rl_free(&pblk->rl);
 
        pr_debug("pblk: consistent tear down\n");