Message ID | 20190314160428.3559-13-igor.j.konopko@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | lightnvm: next set of improvements for 5.2 | expand |
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@intel.com> > --- > 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? > + } > + > 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 >
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@intel.com> >> --- >> 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 >> >
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
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@intel.com> --- drivers/lightnvm/pblk-recovery.c | 9 +++++++++ 1 file changed, 9 insertions(+)