summaryrefslogtreecommitdiff
path: root/super1.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2013-06-24 16:24:08 +1000
committerNeilBrown <neilb@suse.de>2013-06-24 16:24:08 +1000
commit0ddc35beedea6f07c686c99429aaddd8b5e1182d (patch)
tree19dd8417ba220b6cdc933f62b3684ba31ad4cc37 /super1.c
parent1c8b90df155c7eef46f56986eeef911b9744e70a (diff)
super1: fix space_{before,after} for RAID0
For RAID0 we need to use 'data_size', no 'size' as later is 0. Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'super1.c')
-rw-r--r--super1.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/super1.c b/super1.c
index 16dfd389..088df4bf 100644
--- a/super1.c
+++ b/super1.c
@@ -911,7 +911,10 @@ static void getinfo_super1(struct supertype *st, struct mdinfo *info, char *map)
role = __le16_to_cpu(sb->dev_roles[__le32_to_cpu(sb->dev_number)]);
super_offset = __le64_to_cpu(sb->super_offset);
- data_size = __le64_to_cpu(sb->size);
+ if (info->array.level <= 0)
+ data_size = __le64_to_cpu(sb->data_size);
+ else
+ data_size = __le64_to_cpu(sb->size);
if (info->data_offset < super_offset) {
unsigned long long end;
info->space_before = info->data_offset;