Neil Brown: Recent change broken handling of metadata-less arrays.

Martin F. Krafft madduck at alioth.debian.org
Wed Jun 25 15:42:31 UTC 2008


Module: mdadm
Branch: build
Commit: 294d6f450f79fda5475e6e5c99b7be85393f03c6
URL:    http://git.debian.org/?p=pkg-mdadm/mdadm.git;a=commit;h=294d6f450f79fda5475e6e5c99b7be85393f03c6

Author: Neil Brown <neilb at suse.de>
Date:   Thu May 15 15:50:47 2008 +1000

Recent change broken handling of metadata-less arrays.

In particular, failing a device would give a silly
error message.

---

 super0.c |    3 ++-
 sysfs.c  |    5 +++--
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/super0.c b/super0.c
index 2476d77..f2d6d63 100644
--- a/super0.c
+++ b/super0.c
@@ -850,7 +850,8 @@ static struct supertype *match_metadata_desc0(char *arg)
 	if (strcmp(arg, "0") == 0 ||
 	    strcmp(arg, "0.90") == 0 ||
 	    strcmp(arg, "0.91") == 0 ||
-	    strcmp(arg, "default") == 0
+	    strcmp(arg, "default") == 0 ||
+	    strcmp(arg, "") == 0 /* no metadata */
 		)
 		return st;
 
diff --git a/sysfs.c b/sysfs.c
index 03b09fd..d77080b 100644
--- a/sysfs.c
+++ b/sysfs.c
@@ -103,10 +103,11 @@ struct mdinfo *sysfs_read(int fd, int devnum, unsigned long options)
 		strcpy(base, "metadata_version");
 		if (load_sys(fname, buf))
 			goto abort;
-		if (strncmp(buf, "none", 4) == 0)
+		if (strncmp(buf, "none", 4) == 0) {
 			sra->array.major_version =
 				sra->array.minor_version = -1;
-		else if (strncmp(buf, "external:", 9) == 0) {
+			strcpy(sra->text_version, "");
+		} else if (strncmp(buf, "external:", 9) == 0) {
 			sra->array.major_version = -1;
 			sra->array.minor_version = -2;
 			strcpy(sra->text_version, buf+9);




More information about the pkg-mdadm-commits mailing list