summaryrefslogtreecommitdiffstats
path: root/drivers/lightnvm
diff options
context:
space:
mode:
authorJavier González <javier@cnexlabs.com>2018-01-05 14:16:18 +0100
committerJens Axboe <axboe@kernel.dk>2018-01-05 08:50:12 -0700
commitc6847e4e359f01745bad5aea0fa20a0c5edfdc51 (patch)
tree7618567667cc581073520a6f0d008b94bc773058 /drivers/lightnvm
parentcc4f5ba1fb6ebe977fb44293abebb79af77556f0 (diff)
downloadop-kernel-dev-c6847e4e359f01745bad5aea0fa20a0c5edfdc51.zip
op-kernel-dev-c6847e4e359f01745bad5aea0fa20a0c5edfdc51.tar.gz
lightnvm: pblk: free write buffer on init failure
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>
Diffstat (limited to 'drivers/lightnvm')
-rw-r--r--drivers/lightnvm/pblk-init.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/lightnvm/pblk-init.c b/drivers/lightnvm/pblk-init.c
index 7e11926..8c40bc3 100644
--- a/drivers/lightnvm/pblk-init.c
+++ b/drivers/lightnvm/pblk-init.c
@@ -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");
OpenPOWER on IntegriCloud