]> err.no Git - util-linux/commitdiff
mkfs.minix: fix size detection
authorMatthias Koenig <mkoenig@suse.de>
Thu, 6 Nov 2008 14:43:46 +0000 (15:43 +0100)
committerKarel Zak <kzak@redhat.com>
Thu, 13 Nov 2008 22:56:32 +0000 (23:56 +0100)
blkdev_get_size returns size in bytes, so BLOCKS has to be
calculated accordingly.
Use stat value for size if device is not a block device.

Signed-off-by: Matthias Koenig <mkoenig@suse.de>
disk-utils/mkfs.minix.c

index f97df27438bff7e55b79517bfd5ae525d4829c2b..f0c45c46899a549a03c28e3ce5722cc7fbb7452a 100644 (file)
@@ -654,9 +654,14 @@ main(int argc, char ** argv) {
            die(_("cannot determine sector size for %s"));
     if (BLOCK_SIZE < sectorsize)
            die(_("block size smaller than physical sector size of %s"));
-    if (!BLOCKS && blkdev_get_size(DEV, &BLOCKS) == -1)
-       die(_("cannot determine size of %s"));
+    if (!BLOCKS) {
+           if (blkdev_get_size(DEV, &BLOCKS) == -1)
+               die(_("cannot determine size of %s"));
+           BLOCKS /= BLOCK_SIZE;
+    }
   } else if (!S_ISBLK(statbuf.st_mode)) {
+    if (!BLOCKS)
+           BLOCKS = statbuf.st_size / BLOCK_SIZE;
     check=0;
   } else if (statbuf.st_rdev == 0x0300 || statbuf.st_rdev == 0x0340)
     die(_("will not try to make filesystem on '%s'"));