SOURCES: mdadm-assemble-fix1.patch (NEW), mdadm-assemble-fix2.patch (NEW) -...

arekm arekm at pld-linux.org
Tue Jul 22 12:33:09 CEST 2008


Author: arekm                        Date: Tue Jul 22 10:33:09 2008 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- fixes from upstream

---- Files affected:
SOURCES:
   mdadm-assemble-fix1.patch (NONE -> 1.1)  (NEW), mdadm-assemble-fix2.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: SOURCES/mdadm-assemble-fix1.patch
diff -u /dev/null SOURCES/mdadm-assemble-fix1.patch:1.1
--- /dev/null	Tue Jul 22 12:33:09 2008
+++ SOURCES/mdadm-assemble-fix1.patch	Tue Jul 22 12:33:03 2008
@@ -0,0 +1,33 @@
+From: Neil Brown <neilb at suse.de>
+Date: Thu, 19 Jun 2008 06:30:36 +0000 (+1000)
+Subject: Fix an error when assembling arrays that are in the middle of a reshape.
+X-Git-Url: http://neil.brown.name/git?p=mdadm;a=commitdiff_plain;h=56f8add211a840faaed325bd16483b55da544e93
+
+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 */

================================================================
Index: SOURCES/mdadm-assemble-fix2.patch
diff -u /dev/null SOURCES/mdadm-assemble-fix2.patch:1.1
--- /dev/null	Tue Jul 22 12:33:10 2008
+++ SOURCES/mdadm-assemble-fix2.patch	Tue Jul 22 12:33:03 2008
@@ -0,0 +1,26 @@
+From: Chris Webb <chris at arachsys.com>
+Date: Thu, 19 Jun 2008 06:30:39 +0000 (+1000)
+Subject: Fix bug in forced assemble.
+X-Git-Url: http://neil.brown.name/git?p=mdadm;a=commitdiff_plain;h=60b435db5a7b085ad1204168879037bf14ebd6d1
+
+Fix bug in forced assemble.
+
+From: Chris Webb <chris at arachsys.com>
+
+We are loading into the already-loaded 'st' instead of the
+newly create 'tst', which is clearly wrong.
+---
+
+diff --git a/Assemble.c b/Assemble.c
+index 36b2304..79f0912 100644
+--- a/Assemble.c
++++ b/Assemble.c
+@@ -656,7 +656,7 @@ int Assemble(struct supertype *st, char *mddev, int mdfd,
+ 			continue;
+ 		}
+ 		tst = dup_super(st);
+-		if (tst->ss->load_super(st,fd, NULL)) {
++		if (tst->ss->load_super(tst,fd, NULL)) {
+ 			close(fd);
+ 			fprintf(stderr, Name ": RAID superblock disappeared from %s - not updating.\n",
+ 				devices[chosen_drive].devname);
================================================================


More information about the pld-cvs-commit mailing list