diff options
| author | Javier González <jg@lightnvm.io> | 2017-06-30 11:56:38 -0400 |
|---|---|---|
| committer | Jens Axboe <axboe@kernel.dk> | 2017-06-30 13:08:18 -0400 |
| commit | 8224cbd80be15908ecb6351b90291596e8bdcf79 (patch) | |
| tree | 35bef37a6adb746528058bae684733f9dd50439b /drivers/lightnvm | |
| parent | 10888129783cc8daeeb9c47942876b917532b58c (diff) | |
lightnvm: pblk: use right metadata buffer for recovery
Fix bad metadata buffer assignations introduced when refactoring the
medatada write path.
Fixes: dd2a43437337 lightnvm: pblk: sched. metadata on write thread
Signed-off-by: Javier González <javier@cnexlabs.com>
Signed-off-by: Matias Bjørling <matias@cnexlabs.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'drivers/lightnvm')
| -rw-r--r-- | drivers/lightnvm/pblk-recovery.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/lightnvm/pblk-recovery.c b/drivers/lightnvm/pblk-recovery.c index 7e1c314f2766..6d58659fa3da 100644 --- a/drivers/lightnvm/pblk-recovery.c +++ b/drivers/lightnvm/pblk-recovery.c | |||
| @@ -801,7 +801,7 @@ struct pblk_line *pblk_recov_l2p(struct pblk *pblk) | |||
| 801 | set_bit(meta_line, &l_mg->meta_bitmap); | 801 | set_bit(meta_line, &l_mg->meta_bitmap); |
| 802 | smeta = l_mg->sline_meta[meta_line]; | 802 | smeta = l_mg->sline_meta[meta_line]; |
| 803 | emeta = l_mg->eline_meta[meta_line]; | 803 | emeta = l_mg->eline_meta[meta_line]; |
| 804 | smeta_buf = smeta->buf; | 804 | smeta_buf = (struct line_smeta *)smeta; |
| 805 | spin_unlock(&l_mg->free_lock); | 805 | spin_unlock(&l_mg->free_lock); |
| 806 | 806 | ||
| 807 | /* Order data lines using their sequence number */ | 807 | /* Order data lines using their sequence number */ |
| @@ -888,9 +888,9 @@ struct pblk_line *pblk_recov_l2p(struct pblk *pblk) | |||
| 888 | nr_bb = bitmap_weight(line->blk_bitmap, lm->blk_per_line); | 888 | nr_bb = bitmap_weight(line->blk_bitmap, lm->blk_per_line); |
| 889 | off -= nr_bb * geo->sec_per_pl; | 889 | off -= nr_bb * geo->sec_per_pl; |
| 890 | 890 | ||
| 891 | memset(&emeta->buf, 0, lm->emeta_len[0]); | ||
| 892 | line->emeta = emeta; | ||
| 893 | line->emeta_ssec = off; | 891 | line->emeta_ssec = off; |
| 892 | line->emeta = emeta; | ||
| 893 | memset(line->emeta->buf, 0, lm->emeta_len[0]); | ||
| 894 | 894 | ||
| 895 | if (pblk_line_read_emeta(pblk, line, line->emeta->buf)) { | 895 | if (pblk_line_read_emeta(pblk, line, line->emeta->buf)) { |
| 896 | pblk_recov_l2p_from_oob(pblk, line); | 896 | pblk_recov_l2p_from_oob(pblk, line); |
