[PATCH v3 2/2] lib: bitmap: reduce the number of goto again in bitmap_find_next_zero_area_off()
From: Yi Sun
Date: Thu May 14 2026 - 05:08:41 EST
Finding a contiguous free region in a highly fragmented
bitmap is not easy and may require many repeated attempts.
Therefore, find_next_bit(map, end, index) is not the optimal choice.
This is because there may be multiple scattered free regions
within the range [index, end) and none of them will meet the length
requirement of @nr.
Instead, it's sufficient to directly find the last bit within
the range [index, end), thus reducing unnecessary "goto again" calls.
Signed-off-by: Yi Sun <yi.sun@xxxxxxxxxx>
---
lib/bitmap.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/bitmap.c b/lib/bitmap.c
index b9bfa157e095..9b589643f72a 100644
--- a/lib/bitmap.c
+++ b/lib/bitmap.c
@@ -442,7 +442,7 @@ unsigned long bitmap_find_next_zero_area_off(unsigned long *map,
end = index + nr;
if (end > size)
return end;
- i = find_next_bit(map, end, index);
+ i = find_last_bit_from(map, end, index);
if (i < end) {
start = i + 1;
goto again;
--
2.34.1