summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.com>2016-01-28 11:57:54 +1100
committerNeilBrown <neilb@suse.com>2016-01-28 11:57:54 +1100
commit9f7f28ee5030bbed94c4d54a8da908649ccb7ce0 (patch)
tree9be359fe297b8a3a0cf628e4a1bcb4138ff7cb6f
parentcec72c071bbec386383ec64d25826c4f421efbc0 (diff)
downloadmdadm-9f7f28ee5030bbed94c4d54a8da908649ccb7ce0.tar.gz
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>
-rw-r--r--Detail.c5
-rw-r--r--super0.c3
2 files changed, 5 insertions, 3 deletions
diff --git a/Detail.c b/Detail.c
index d029219..0cfccad 100644
--- a/Detail.c
+++ b/Detail.c
@@ -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);
diff --git a/super0.c b/super0.c
index 7f80014..59a6a03 100644
--- a/super0.c
+++ b/super0.c
@@ -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;