On 17.03.2019 20:56, Matias Bjørling wrote:
On 3/14/19 9:04 AM, Igor Konopko wrote:
Emeta does not have corresponding OOB metadata mapping valid, so there
is no need to try to recover L2P mapping from it.
Signed-off-by: Igor Konopko <igor.j.konopko@xxxxxxxxx>
---
drivers/lightnvm/pblk-recovery.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/drivers/lightnvm/pblk-recovery.c
b/drivers/lightnvm/pblk-recovery.c
index 4764596..2132260 100644
--- a/drivers/lightnvm/pblk-recovery.c
+++ b/drivers/lightnvm/pblk-recovery.c
@@ -479,6 +479,14 @@ static int pblk_recov_scan_oob(struct pblk *pblk,
struct pblk_line *line,
goto retry_rq;
}
+ if (paddr >= line->emeta_ssec) {
+ /*
+ * We reach emeta region and we don't want
+ * to recover oob from emeta region.
+ */
+ goto completed;
The bio needs to be put before going to completed?
Yes, definitely, thanks.
+ }
+
pblk_get_packed_meta(pblk, rqd);
bio_put(bio);
@@ -499,6 +507,7 @@ static int pblk_recov_scan_oob(struct pblk *pblk,
struct pblk_line *line,
if (left_ppas > 0)
goto next_rq;
+completed:
#ifdef CONFIG_NVM_PBLK_DEBUG
WARN_ON(padded && !pblk_line_is_full(line));
#endif