Fix an error when assembling arrays that are in the middle of a reshape.

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).
This commit is contained in:
Neil Brown 2008-06-19 16:30:36 +10:00
parent 866d136a2f
commit 56f8add211
1 changed files with 4 additions and 1 deletions

View File

@ -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 */