]> 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>
Fri, 12 Dec 2008 12:07:50 +0000 (13:07 +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 a5e099261e8b5e115a75b343ba4c91e10ccac75c..bbb811492636dd40eb4528692ca087efaaa31ff6 100644 (file)
@@ -653,9 +653,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'"));