X-Git-Url: http://git.ipfire.org/?p=thirdparty%2Fmdadm.git;a=blobdiff_plain;f=Detail.c;h=3fefc47afef0611d5b02fbdd76ae2a91f040ebcc;hp=232b458a7dd0ee969fe65759881a404be7d0b28a;hb=56eb10c0b6e8f21540af444c8a28aa9e8f138ce6;hpb=9a9dab3670110c2db7fe6f716977b72adedbf855;ds=sidebyside diff --git a/Detail.c b/Detail.c index 232b458a..3fefc47a 100644 --- a/Detail.c +++ b/Detail.c @@ -81,20 +81,24 @@ int Detail(char *dev, int brief) if (brief) printf("ARRAY %s level=%s disks=%d", dev, c?c:"-unknown-",array.raid_disks ); else { - int array_size; - if (ioctl(fd, BLKGETSIZE, &array_size)) - array_size = 0; - else array_size>>= 1; + long array_size; + long long larray_size; + if (ioctl(fd, BLKGETSIZE64, &larray_size)==0) + ; + else if (ioctl(fd, BLKGETSIZE, &array_size)==0) + larray_size = array_size<<9; + else larray_size = 0; + printf("%s:\n", dev); printf(" Version : %02d.%02d.%02d\n", array.major_version, array.minor_version, array.patch_version); atime = array.ctime; printf(" Creation Time : %.24s\n", ctime(&atime)); printf(" Raid Level : %s\n", c?c:"-unknown-"); - if (array_size) - printf(" Array Size : %d%s\n", array_size, human_size(array_size)); + if (larray_size) + printf(" Array Size : %ld%s\n", (long)(larray_size>>10), human_size(larray_size)); if (array.level >= 1) - printf(" Device Size : %d%s\n", array.size, human_size(array.size)); + printf(" Device Size : %d%s\n", array.size, human_size((long long)array.size<<10)); printf(" Raid Disks : %d\n", array.raid_disks); printf(" Total Disks : %d\n", array.nr_disks); printf("Preferred Minor : %d\n", array.md_minor);