Commit 4bbae699 authored by Marcin Dziegielewski's avatar Marcin Dziegielewski Committed by Jens Axboe

lightnvm: pblk: set propper line as data_line after gc

In current implementation of l2p recovery, when we are after gc and we
have open line, we are not setting current data line properly (we set
last line from the device instead of last line ordered by seq_nr) and
in consequence, kernel panic and data corruption.
Signed-off-by: default avatarMarcin Dziegielewski <marcin.dziegielewski@intel.com>
Reviewed-by: default avatarJavier González <javier@javigon.com>
Signed-off-by: default avatarMatias Bjørling <mb@lightnvm.io>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 05038712
...@@ -844,6 +844,7 @@ struct pblk_line *pblk_recov_l2p(struct pblk *pblk) ...@@ -844,6 +844,7 @@ struct pblk_line *pblk_recov_l2p(struct pblk *pblk)
spin_unlock(&l_mg->free_lock); spin_unlock(&l_mg->free_lock);
} else { } else {
spin_lock(&l_mg->free_lock); spin_lock(&l_mg->free_lock);
l_mg->data_line = data_line;
/* Allocate next line for preparation */ /* Allocate next line for preparation */
l_mg->data_next = pblk_line_get(pblk); l_mg->data_next = pblk_line_get(pblk);
if (l_mg->data_next) { if (l_mg->data_next) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment