From: Li Nan linan122@huawei.com
hulk inclusion category: bugfix bugzilla: 188569, https://gitee.com/openeuler/kernel/issues/I6ZG5B CVE: NA
--------------------------------
Order of badblocks will be reversed if we set a large area at once. 'hi' remains unchanged while adding continuous badblocks is wrong, the next setting is greater than 'hi', it should be added to the next position. Let 'hi' +1 each cycle.
# echo 0 2048 > bad_blocks # cat bad_blocks 1536 512 1024 512 512 512 0 512
Fixes: 9e0e252a048b ("badblocks: Add core badblock management code") Signed-off-by: Li Nan linan122@huawei.com Reviewed-by: Hou Tao houtao1@huawei.com --- block/badblocks.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/block/badblocks.c b/block/badblocks.c index 0ee3cbacb236..4c0f39625e89 100644 --- a/block/badblocks.c +++ b/block/badblocks.c @@ -303,6 +303,7 @@ int badblocks_set(struct badblocks *bb, sector_t s, int sectors, p[hi] = BB_MAKE(s, this_sectors, acknowledged); sectors -= this_sectors; s += this_sectors; + hi++; changed = 1; } }