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 <[email protected]>
---
 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;
+       }
+
        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
-- 
2.9.5

Reply via email to