summaryrefslogtreecommitdiff
path: root/super1.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2013-08-14 17:06:22 +1000
committerNeilBrown <neilb@suse.de>2013-08-14 17:16:35 +1000
commit4c0ea7b0d97f73ed18164bfdaa0b59d49e03a6cf (patch)
treeae8c5e7c19582c6008ac95c1b9df95f9cd2360dd /super1.c
parent632dc30ccf2a76f06833d269617c65350c2f5b3b (diff)
downloadmdadm-4c0ea7b0d97f73ed18164bfdaa0b59d49e03a6cf.tar.gz
super1: fix setting of data_offset for 1.0 metadata.
commit 23bf42cc79d46de019d4b27c16354a191a98ed41 super1: simplify setting of array size. removed the setting for sb->data_offset for 1.0 metadata for some reason, and messed up the size calculation for 1.0 metadata too. Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'super1.c')
-rw-r--r--super1.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/super1.c b/super1.c
index fcdb710..1bc5216 100644
--- a/super1.c
+++ b/super1.c
@@ -1638,6 +1638,7 @@ static int write_init_super1(struct supertype *st)
sb_offset = dsize;
sb_offset -= 8*2;
sb_offset &= ~(4*2-1);
+ sb->data_offset = __cpu_to_le64(data_offset);
sb->super_offset = __cpu_to_le64(sb_offset);
if (sb_offset < array_size + bm_space)
bm_space = sb_offset - array_size;
@@ -2311,7 +2312,7 @@ static int validate_geometry1(struct supertype *st, int level,
case 0: /* metadata at end. Round down and subtract space to reserve */
devsize = (devsize & ~(4ULL*2-1));
/* space for metadata, bblog, bitmap */
- devsize -= 8*2 - 8 - bmspace;
+ devsize -= 8*2 + 8 + bmspace;
break;
case 1:
case 2: