From: Michael Tremer Date: Tue, 12 Aug 2014 09:10:37 +0000 (+0200) Subject: mdadm: Update to 3.3.1. X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=56774f9ed2bc6698fe47394fd445b43ead355a90;p=people%2Fms%2Fipfire-2.x.git mdadm: Update to 3.3.1. --- diff --git a/config/rootfiles/common/mdadm b/config/rootfiles/common/mdadm index d593cac254..d2d87267d8 100644 --- a/config/rootfiles/common/mdadm +++ b/config/rootfiles/common/mdadm @@ -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 diff --git a/lfs/mdadm b/lfs/mdadm index 5c4024700f..46dbf2c2f3 100644 --- a/lfs/mdadm +++ b/lfs/mdadm @@ -24,10 +24,10 @@ 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 index 0000000000..521578921b --- /dev/null +++ b/src/patches/mdadm-3.3.1-Assemble-Only-fail-auto-assemble-in-face-of-mdadm.co.patch @@ -0,0 +1,85 @@ +From 5141638c54535b4ac80b8481404d868a63a18ecd Mon Sep 17 00:00:00 2001 +From: NeilBrown +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 +--- + 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, "") == 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, "") == 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 +