diff mbox series

[12/18] lightnvm: pblk: do not read OOB from emeta region

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

Commit Message

Igor Konopko March 14, 2019, 4:04 p.m. UTC
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(+)

Comments

Matias Bjorling March 17, 2019, 7:56 p.m. UTC | #1
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
>
Igor Konopko March 18, 2019, 1:05 p.m. UTC | #2
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 mbox series

Patch

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