md/bitmap: fix incorrect DIV_ROUND_UP usage.
authorNeilBrown <neilb@suse.de>
Mon, 2 Mar 2015 06:02:29 +0000 (17:02 +1100)
committerNeilBrown <neilb@suse.de>
Wed, 4 Mar 2015 01:54:29 +0000 (12:54 +1100)
DIV_ROUTND_UP doesn't work on "long long", - and it should be
sector_t anyway.

Signed-off-by: NeilBrown <neilb@suse.de>
drivers/md/bitmap.c

index dd8c78043eab3b1062406351e9f0b7c12392f42f..03e0752af99f9bcf7f689c18d5b54ccd1db1b76a 100644 (file)
@@ -571,11 +571,11 @@ static int bitmap_read_sb(struct bitmap *bitmap)
 re_read:
        /* If cluster_slot is set, the cluster is setup */
        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 = 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);
                pr_info("%s:%d bm slot: %d offset: %llu\n", __func__, __LINE__,
                        bitmap->cluster_slot, (unsigned long long)bitmap->mddev->bitmap_info.offset);