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: Marcin Dziegielewski <marcin.dziegielewski@intel.com>
Reviewed-by: Javier González <javier@javigon.com>
Signed-off-by: Matias Bjørling <mb@lightnvm.io>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
Marcin Dziegielewski 2019-05-04 20:37:57 +02:00 committed by Jens Axboe
parent 0503871223
commit 4bbae69922

View File

@ -844,6 +844,7 @@ next:
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) {