Commit 37446680 authored by Li Nan's avatar Li Nan Committed by Jens Axboe
Browse files

badblocks: fix the using of MAX_BADBLOCKS



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

Fixes: aa511ff8 ("badblocks: switch to the improved badblock handling code")
Fixes: c3c6a86e ("badblocks: add helper routines for badblock ranges handling")
Signed-off-by: default avatarLi Nan <linan122@huawei.com>
Reviewed-by: default avatarZhu Yanjun <yanjun.zhu@linux.dev>
Reviewed-by: default avatarYu Kuai <yukuai3@huawei.com>
Acked-by: default avatarColy Li <colyli@kernel.org>
Link: https://lore.kernel.org/r/20250227075507.151331-7-zhengqixing@huaweicloud.com


Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 7f500f0a
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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++;