File 0157-super0-Fix-reporting-of-devices-between-2GB-and-4GB.patch of Package mdadm.5365
From 9f7f28ee5030bbed94c4d54a8da908649ccb7ce0 Mon Sep 17 00:00:00 2001
From: NeilBrown <neilb@suse.com>
Date: Thu, 28 Jan 2016 11:57:54 +1100
Subject: [PATCH 217/359] super0: Fix reporting of devices between 2GB and 4GB
References: bsc#1081910
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>
Signed-off-by: Coly Li <colyli@suse.de>
---
Detail.c | 5 +++--
super0.c | 3 ++-
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;
--
2.16.1