Эх сурвалжийг харах

md/bitmap: fix incorrect DIV_ROUND_UP usage.

DIV_ROUTND_UP doesn't work on "long long", - and it should be
sector_t anyway.

Signed-off-by: NeilBrown <neilb@suse.de>
NeilBrown 10 жил өмнө
parent
commit
935f3d4fc6

+ 2 - 2
drivers/md/bitmap.c

@@ -571,11 +571,11 @@ static int bitmap_read_sb(struct bitmap *bitmap)
 re_read:
 re_read:
 	/* If cluster_slot is set, the cluster is setup */
 	/* If cluster_slot is set, the cluster is setup */
 	if (bitmap->cluster_slot >= 0) {
 	if (bitmap->cluster_slot >= 0) {
-		long long bm_blocks;
+		sector_t bm_blocks;
 
 
 		bm_blocks = bitmap->mddev->resync_max_sectors / (bitmap->mddev->bitmap_info.chunksize >> 9);
 		bm_blocks = bitmap->mddev->resync_max_sectors / (bitmap->mddev->bitmap_info.chunksize >> 9);
 		bm_blocks = bm_blocks << 3;
 		bm_blocks = bm_blocks << 3;
-		bm_blocks = DIV_ROUND_UP(bm_blocks, 4096);
+		bm_blocks = DIV_ROUND_UP_SECTOR_T(bm_blocks, 4096);
 		bitmap->mddev->bitmap_info.offset += bitmap->cluster_slot * (bm_blocks << 3);
 		bitmap->mddev->bitmap_info.offset += bitmap->cluster_slot * (bm_blocks << 3);
 		pr_info("%s:%d bm slot: %d offset: %llu\n", __func__, __LINE__,
 		pr_info("%s:%d bm slot: %d offset: %llu\n", __func__, __LINE__,
 			bitmap->cluster_slot, (unsigned long long)bitmap->mddev->bitmap_info.offset);
 			bitmap->cluster_slot, (unsigned long long)bitmap->mddev->bitmap_info.offset);