]> git.ipfire.org Git - thirdparty/mdadm.git/blobdiff - super1.c
super1: fix setting of data_offset for 1.0 metadata.
[thirdparty/mdadm.git] / 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: