]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
super1: fix setting of data_offset for 1.0 metadata.
authorNeilBrown <neilb@suse.de>
Wed, 14 Aug 2013 07:06:22 +0000 (17:06 +1000)
committerNeilBrown <neilb@suse.de>
Wed, 14 Aug 2013 07:16:35 +0000 (17:16 +1000)
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>
super1.c

index fcdb710bb28dec5b06b2d79ca33a21bf3f338f5d..1bc5216faeb9066d45687a2fd70df68561ab1ad9 100644 (file)
--- 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: