hmzhao c703c1
From a913096decbf4101271e7d87b9affb1454bb7676 Mon Sep 17 00:00:00 2001
hmzhao c703c1
From: Zhao Heming <heming.zhao@suse.com>
hmzhao c703c1
Date: Tue, 6 Oct 2020 00:00:23 +0800
hmzhao c703c1
Subject: [PATCH] md/bitmap: md_bitmap_read_sb uses wrong bitmap blocks
hmzhao c703c1
Git-commit: a913096decbf4101271e7d87b9affb1454bb7676
hmzhao c703c1
Patch-mainline: v5.10-rc1
hmzhao c703c1
References: bsc#1163727
hmzhao c703c1
hmzhao c703c1
The patched code is used to get chunks number, should use round-up div
hmzhao c703c1
to replace current sector_div. The same code is in md_bitmap_resize():
hmzhao c703c1
```
hmzhao c703c1
chunks = DIV_ROUND_UP_SECTOR_T(blocks, 1 << chunkshift);
hmzhao c703c1
```
hmzhao c703c1
hmzhao c703c1
Signed-off-by: Zhao Heming <heming.zhao@suse.com>
hmzhao c703c1
Signed-off-by: Song Liu <songliubraving@fb.com>
hmzhao c703c1
---
hmzhao c703c1
 drivers/md/md-bitmap.c | 4 ++--
hmzhao c703c1
 1 file changed, 2 insertions(+), 2 deletions(-)
hmzhao c703c1
hmzhao c703c1
diff --git a/drivers/md/md-bitmap.c b/drivers/md/md-bitmap.c
hmzhao c703c1
index 55b757a223a4..cd9a12ca281d 100644
hmzhao c703c1
--- a/drivers/md/md-bitmap.c
hmzhao c703c1
+++ b/drivers/md/md-bitmap.c
hmzhao c703c1
@@ -606,8 +606,8 @@ static int md_bitmap_read_sb(struct bitmap *bitmap)
hmzhao c703c1
 	if (bitmap->cluster_slot >= 0) {
hmzhao c703c1
 		sector_t bm_blocks = bitmap->mddev->resync_max_sectors;
hmzhao c703c1
 
hmzhao c703c1
-		sector_div(bm_blocks,
hmzhao c703c1
-			   bitmap->mddev->bitmap_info.chunksize >> 9);
hmzhao c703c1
+		bm_blocks = DIV_ROUND_UP_SECTOR_T(bm_blocks,
hmzhao c703c1
+			   (bitmap->mddev->bitmap_info.chunksize >> 9));
hmzhao c703c1
 		/* bits to bytes */
hmzhao c703c1
 		bm_blocks = ((bm_blocks+7) >> 3) + sizeof(bitmap_super_t);
hmzhao c703c1
 		/* to 4k blocks */
hmzhao c703c1
-- 
hmzhao c703c1
1.8.3.1
hmzhao c703c1