From 92155747002a61b7d77c8eb1616f604bd4cba4ca Mon Sep 17 00:00:00 2001 From: Joe Thornber Date: Mon, 9 Feb 2004 17:24:56 -0800 Subject: [PATCH] [PATCH] dm: block size bug with 64 bit devs With 32 bit sector_t the block device size _in bytes_ is also cut to 32 bit in __set_size when the block device is mount (a filesystem mounted). The argument should be cast to loff_t before expanding the sector count to a byte count and calling i_size_write. [Christophe Saout] --- drivers/md/dm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/md/dm.c b/drivers/md/dm.c index c116277d664cc..a96f07c3cdea5 100644 --- a/drivers/md/dm.c +++ b/drivers/md/dm.c @@ -674,7 +674,7 @@ static void __set_size(struct gendisk *disk, sector_t size) bdev = bdget_disk(disk, 0); if (bdev) { down(&bdev->bd_inode->i_sem); - i_size_write(bdev->bd_inode, size << SECTOR_SHIFT); + i_size_write(bdev->bd_inode, (loff_t)size << SECTOR_SHIFT); up(&bdev->bd_inode->i_sem); bdput(bdev); } -- 2.53.0