aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZhao Heming <heming.zhao@suse.com>2020-10-06 00:00:23 +0800
committerSong Liu <songliubraving@fb.com>2020-10-08 22:31:29 -0700
commita913096decbf4101271e7d87b9affb1454bb7676 (patch)
tree7bac2ad259872d46457d3fb351ddbe75f79e55a2
parentmd/raid0: remove unused function is_io_in_chunk_boundary() (diff)
downloadlinux-dev-a913096decbf4101271e7d87b9affb1454bb7676.tar.xz
linux-dev-a913096decbf4101271e7d87b9affb1454bb7676.zip
md/bitmap: md_bitmap_read_sb uses wrong bitmap blocks
The patched code is used to get chunks number, should use round-up div to replace current sector_div. The same code is in md_bitmap_resize(): ``` chunks = DIV_ROUND_UP_SECTOR_T(blocks, 1 << chunkshift); ``` Signed-off-by: Zhao Heming <heming.zhao@suse.com> Signed-off-by: Song Liu <songliubraving@fb.com>
-rw-r--r--drivers/md/md-bitmap.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/md/md-bitmap.c b/drivers/md/md-bitmap.c
index 55b757a223a4..cd9a12ca281d 100644
--- a/drivers/md/md-bitmap.c
+++ b/drivers/md/md-bitmap.c
@@ -606,8 +606,8 @@ re_read:
if (bitmap->cluster_slot >= 0) {
sector_t bm_blocks = bitmap->mddev->resync_max_sectors;
- sector_div(bm_blocks,
- bitmap->mddev->bitmap_info.chunksize >> 9);
+ bm_blocks = DIV_ROUND_UP_SECTOR_T(bm_blocks,
+ (bitmap->mddev->bitmap_info.chunksize >> 9));
/* bits to bytes */
bm_blocks = ((bm_blocks+7) >> 3) + sizeof(bitmap_super_t);
/* to 4k blocks */