diff options
author | Hans Holmberg <hans.holmberg@cnexlabs.com> | 2017-10-13 14:46:36 +0200 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2017-10-13 08:34:57 -0600 |
commit | 37ce33d5756f4ba8bdd45371a1918ceeeba5b158 (patch) | |
tree | 88cd7f14673b622d640b71c6bd7ab7bab7c921f0 /drivers/lightnvm/pblk-init.c | |
parent | 92957091e93931c91fccb7cce456312edeeea36c (diff) | |
download | linux-37ce33d5756f4ba8bdd45371a1918ceeeba5b158.tar.gz |
lightnvm: pblk: free full lines during recovery
When rebuilding the L2P table, any full lines (lines without any
valid sectors) will be identified. If these lines are not freed,
we risk not being able to allocate the first data line.
This patch refactors the part of GC that frees empty lines
into a separate function and adds a call to this after the
L2P table has been rebuilt.
Signed-off-by: Hans Holmberg <hans.holmberg@cnexlabs.com>
Signed-off-by: Matias Bjørling <m@bjorling.me>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'drivers/lightnvm/pblk-init.c')
-rw-r--r-- | drivers/lightnvm/pblk-init.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/lightnvm/pblk-init.c b/drivers/lightnvm/pblk-init.c index 27eb430958ff..f08fa2083fbc 100644 --- a/drivers/lightnvm/pblk-init.c +++ b/drivers/lightnvm/pblk-init.c @@ -508,6 +508,9 @@ static int pblk_lines_configure(struct pblk *pblk, int flags) } } + /* Free full lines directly as GC has not been started yet */ + pblk_gc_free_full_lines(pblk); + if (!line) { /* Configure next line for user data */ line = pblk_line_get_first_data(pblk); |