]> git.neil.brown.name Git - mdadm.git/commitdiff
Fix an error when assembling arrays that are in the middle of a reshape.
authorNeil Brown <neilb@suse.de>
Thu, 19 Jun 2008 06:30:36 +0000 (16:30 +1000)
committerNeilBrown <neilb@suse.de>
Fri, 14 Nov 2008 04:58:29 +0000 (15:58 +1100)
It is important that dup_super always returns an 'st' with the same
->ss and ->minor_version as the st that was passed.
This wasn't happening for 0.91 metadata (i.e. in the middle of a reshape).

super0.c

index 7e814829f7eb4faa17378198574c7ec845b5ab2e..8e4c568e1e360ac2e8ab1146b1bc5b06578ad8fc 100644 (file)
--- a/super0.c
+++ b/super0.c
@@ -849,12 +849,15 @@ static struct supertype *match_metadata_desc0(char *arg)
        st->sb = NULL;
        if (strcmp(arg, "0") == 0 ||
            strcmp(arg, "0.90") == 0 ||
-           strcmp(arg, "0.91") == 0 ||
            strcmp(arg, "default") == 0 ||
            strcmp(arg, "") == 0 /* no metadata */
                )
                return st;
 
+       st->minor_version = 91; /* reshape in progress */
+       if (strcmp(arg, "0.91") == 0) /* For dup_super support */
+               return st;
+
        st->minor_version = 9; /* flag for 'byte-swapped' */
        if (strcmp(arg, "0.swap")==0 ||
            strcmp(arg, "0.9") == 0) /* For dup_super support */