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

Martin F. Krafft madduck at alioth.debian.org
Mon Feb 16 10:52:32 UTC 2009


Module: mdadm
Branch: master
Commit: 56f8add211a840faaed325bd16483b55da544e93
URL:    http://git.debian.org/?p=pkg-mdadm/mdadm.git;a=commit;h=56f8add211a840faaed325bd16483b55da544e93

Author: Neil Brown <neilb at 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).

---

 super0.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

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




More information about the pkg-mdadm-commits mailing list