forked from pool/mdadm
32 lines
1.1 KiB
Diff
32 lines
1.1 KiB
Diff
commit 56f8add211a840faaed325bd16483b55da544e93
|
|
Author: Neil Brown <neilb@suse.de>
|
|
Date: Thu Jun 19 16:30:36 2008 +1000
|
|
|
|
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).
|
|
|
|
diff --git a/super0.c b/super0.c
|
|
index 7e81482..8e4c568 100644
|
|
--- 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 */
|