Make sure that the variable controlling block threshold for allocating
extra metadata sectors in case of a line with bad blocks does not get a
negative value. Otherwise, the line will be marked as corrupted and
wasted.

Signed-off-by: Javier González <jav...@cnexlabs.com>
---
 drivers/lightnvm/pblk-init.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/lightnvm/pblk-init.c b/drivers/lightnvm/pblk-init.c
index 9d9adcf3e141..7cf4b536d899 100644
--- a/drivers/lightnvm/pblk-init.c
+++ b/drivers/lightnvm/pblk-init.c
@@ -707,7 +707,7 @@ static int pblk_lines_init(struct pblk *pblk)
                goto add_emeta_page;
        }
 
-       lm->emeta_bb = geo->nr_luns - i;
+       lm->emeta_bb = geo->nr_luns > i ? geo->nr_luns - i : 0;
 
        lm->min_blk_line = 1;
        if (geo->nr_luns > 1)
-- 
2.7.4

Reply via email to