From 4c0ea7b0d97f73ed18164bfdaa0b59d49e03a6cf Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Wed, 14 Aug 2013 17:06:22 +1000 Subject: [PATCH] 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 --- super1.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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: