super0: Fix reporting of devices between 2GB and 4GB

v0.90 metadata can handle devices between 2GB and 4GB, but we need
to treat the 'size' and unsigned.  In a couple of places we don't.

URL: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=809447
Signed-off-by: NeilBrown <neilb@suse.com>
This commit is contained in:
NeilBrown 2016-01-28 11:57:54 +11:00
parent cec72c071b
commit 9f7f28ee50
2 changed files with 5 additions and 3 deletions

View File

@ -425,8 +425,9 @@ int Detail(char *dev, struct context *c)
else
printf(" Used Dev Size : unknown\n");
} else
printf(" Used Dev Size : %d%s\n", array.size,
human_size((long long)array.size<<10));
printf(" Used Dev Size : %lu%s\n",
(unsigned long)array.size,
human_size((unsigned long long)array.size<<10));
}
if (array.raid_disks)
printf(" Raid Devices : %d\n", array.raid_disks);

View File

@ -405,7 +405,8 @@ static void getinfo_super0(struct supertype *st, struct mdinfo *info, char *map)
info->array.utime = sb->utime;
info->array.chunk_size = sb->chunk_size;
info->array.state = sb->state;
info->component_size = sb->size*2;
info->component_size = sb->size;
info->component_size *= 2;
if (sb->state & (1<<MD_SB_BITMAP_PRESENT))
info->bitmap_offset = 8;