diff options
author | Javier González <javier@cnexlabs.com> | 2018-01-05 14:16:18 +0100 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2018-01-05 16:50:12 +0100 |
commit | c6847e4e359f01745bad5aea0fa20a0c5edfdc51 (patch) | |
tree | 7618567667cc581073520a6f0d008b94bc773058 /drivers/lightnvm | |
parent | lightnvm: pblk: ensure kthread alloc. before kicking it (diff) | |
download | linux-c6847e4e359f01745bad5aea0fa20a0c5edfdc51.tar.xz linux-c6847e4e359f01745bad5aea0fa20a0c5edfdc51.zip |
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.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/lightnvm/pblk-init.c b/drivers/lightnvm/pblk-init.c index 7e11926830db..8c40bc358b71 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"); |