From: Li Nan <linan...@huawei.com>

The number of badblocks cannot exceed MAX_BADBLOCKS, but it should be
allowed to equal MAX_BADBLOCKS.

Fixes: aa511ff8218b ("badblocks: switch to the improved badblock handling code")
Signed-off-by: Li Nan <linan...@huawei.com>
---
 block/badblocks.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/block/badblocks.c b/block/badblocks.c
index a953d2e9417f..87267bae6836 100644
--- a/block/badblocks.c
+++ b/block/badblocks.c
@@ -700,7 +700,7 @@ static bool can_front_overwrite(struct badblocks *bb, int 
prev,
                        *extra = 2;
        }
 
-       if ((bb->count + (*extra)) >= MAX_BADBLOCKS)
+       if ((bb->count + (*extra)) > MAX_BADBLOCKS)
                return false;
 
        return true;
@@ -1135,7 +1135,7 @@ static int _badblocks_clear(struct badblocks *bb, 
sector_t s, int sectors)
                if ((BB_OFFSET(p[prev]) < bad.start) &&
                    (BB_END(p[prev]) > (bad.start + bad.len))) {
                        /* Splitting */
-                       if ((bb->count + 1) < MAX_BADBLOCKS) {
+                       if ((bb->count + 1) <= MAX_BADBLOCKS) {
                                len = front_splitting_clear(bb, prev, &bad);
                                bb->count += 1;
                                cleared++;
-- 
2.39.2


Reply via email to