]> git.neil.brown.name Git - history.git/commitdiff
[PATCH] dm: block size bug with 64 bit devs
authorJoe Thornber <thornber@redhat.com>
Tue, 10 Feb 2004 01:24:56 +0000 (17:24 -0800)
committerLinus Torvalds <torvalds@home.osdl.org>
Tue, 10 Feb 2004 01:24:56 +0000 (17:24 -0800)
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

index c116277d664cc73adc148ec743afe0d66b89752e..a96f07c3cdea53f7deac1fecf0816e91e4d862bf 100644 (file)
@@ -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);
        }