]> git.ipfire.org Git - ipfire-2.x.git/commitdiff
mdadm: Update to 3.3.1.
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 12 Aug 2014 09:10:37 +0000 (11:10 +0200)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 12 Aug 2014 09:56:15 +0000 (11:56 +0200)
config/rootfiles/common/mdadm
lfs/mdadm
src/patches/mdadm-3.3.1-Assemble-Only-fail-auto-assemble-in-face-of-mdadm.co.patch [new file with mode: 0644]

index d593cac2541167f8574c68e5793b7df364cf8b82..d2d87267d83f9d2f8b28f52409b31268e6c93b65 100644 (file)
@@ -1,7 +1,8 @@
 etc/rc.d/rc0.d/S85mdadm
 etc/rc.d/rc6.d/S75mdadm
 etc/rc.d/rcsysinit.d/S11mdadm
-lib/udev/rules.d/64-md-raid.rules
+lib/udev/rules.d/63-md-raid-arrays.rules
+lib/udev/rules.d/64-md-raid-assembly.rules
 sbin/mdadm
 sbin/mdmon
 #usr/share/man/man4/md.4
index 5c4024700fccf823db6e3c8465982b43f06139c6..46dbf2c2f3ad93d8347b3be9570023012ffd83d7 100644 (file)
--- a/lfs/mdadm
+++ b/lfs/mdadm
 
 include Config
 
-VER        = 3.2.1
+VER        = 3.3.1
 
 THISAPP    = mdadm-$(VER)
-DL_FILE    = $(THISAPP).tar.bz2
+DL_FILE    = $(THISAPP).tar.xz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = d1e2549202bd79d9e99f1498d1109530
+$(DL_FILE)_MD5 = 4227d48de62dfb217c92fa0c54171bbe
 
 install : $(TARGET)
 
@@ -76,7 +76,8 @@ $(subst %,%_MD5,$(objects)) :
 
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
-       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/mdadm-3.3.1-Assemble-Only-fail-auto-assemble-in-face-of-mdadm.co.patch
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
        ln -sf ../init.d/mdadm /etc/rc.d/rcsysinit.d/S11mdadm
diff --git a/src/patches/mdadm-3.3.1-Assemble-Only-fail-auto-assemble-in-face-of-mdadm.co.patch b/src/patches/mdadm-3.3.1-Assemble-Only-fail-auto-assemble-in-face-of-mdadm.co.patch
new file mode 100644 (file)
index 0000000..5215789
--- /dev/null
@@ -0,0 +1,85 @@
+From 5141638c54535b4ac80b8481404d868a63a18ecd Mon Sep 17 00:00:00 2001
+From: NeilBrown <neilb@suse.de>
+Date: Tue, 29 Jul 2014 13:48:23 +1000
+Subject: [PATCH] Assemble: Only fail auto-assemble in face of mdadm.conf
+ conflicts.
+
+We should never auto-assemble things that conflict with mdadm.conf
+However explicit assembly requests should be allowed.
+
+Reported-by: olovopb
+Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1070245
+Signed-off-by: NeilBrown <neilb@suse.de>
+---
+ Assemble.c | 47 ++++++++++++++++++++++++++---------------------
+ 1 file changed, 26 insertions(+), 21 deletions(-)
+
+diff --git a/Assemble.c b/Assemble.c
+index aca28be..cdcdb0f 100644
+--- a/Assemble.c
++++ b/Assemble.c
+@@ -366,9 +366,6 @@ static int select_devices(struct mddev_dev *devlist,
+                       tmpdev = NULL;
+                       goto loop;
+               } else {
+-                      int rv = 0;
+-                      struct mddev_ident *match;
+-
+                       content = *contentp;
+                       tst->ss->getinfo_super(tst, content, NULL);
+@@ -377,25 +374,33 @@ static int select_devices(struct mddev_dev *devlist,
+                                          report_mismatch ? devname : NULL))
+                               goto loop;
+-                      match = conf_match(tst, content, devname,
+-                                         report_mismatch ? c->verbose : -1,
+-                                         &rv);
+-                      if (!match && rv == 2)
+-                              goto loop;
+-                      if (match && match->devname &&
+-                          strcasecmp(match->devname, "<ignore>") == 0) {
+-                              if (report_mismatch)
+-                                      pr_err("%s is a member of an explicitly ignored array\n",
+-                                             devname);
+-                              goto loop;
+-                      }
+-                      if (match && !ident_matches(match, content, tst,
+-                                                  c->homehost, c->update,
+-                                                  report_mismatch ? devname : NULL))
+-                              /* Array exists  in mdadm.conf but some
+-                               * details don't match, so reject it
++                      if (auto_assem) {
++                              /* Never auto-assemble things that conflict
++                               * with mdadm.conf in some way
+                                */
+-                              goto loop;
++                              struct mddev_ident *match;
++                              int rv = 0;
++
++                              match = conf_match(tst, content, devname,
++                                                 report_mismatch ? c->verbose : -1,
++                                                 &rv);
++                              if (!match && rv == 2)
++                                      goto loop;
++                              if (match && match->devname &&
++                                  strcasecmp(match->devname, "<ignore>") == 0) {
++                                      if (report_mismatch)
++                                              pr_err("%s is a member of an explicitly ignored array\n",
++                                                     devname);
++                                      goto loop;
++                              }
++                              if (match && !ident_matches(match, content, tst,
++                                                          c->homehost, c->update,
++                                                          report_mismatch ? devname : NULL))
++                                      /* Array exists  in mdadm.conf but some
++                                       * details don't match, so reject it
++                                       */
++                                      goto loop;
++                      }
+                       /* should be safe to try an exclusive open now, we
+                        * have rejected anything that some other mdadm might
+-- 
+1.9.3
+