Accepting request 123057 from Base:System
Automatic submission by obs-autosubmit OBS-URL: https://build.opensuse.org/request/show/123057 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/mdadm?expand=0&rev=69
This commit is contained in:
2
boot.md
2
boot.md
@@ -125,6 +125,8 @@ case "$1" in
|
||||
# empty or missing /etc/mdadm.conf, "unused"
|
||||
rc_status -u
|
||||
else
|
||||
# firstly finish any incremental assembly that has started.
|
||||
$mdadm_BIN -IRs
|
||||
$mdadm_BIN -A -s -c $mdadm_CONFIG
|
||||
# a status of 2 is not an error
|
||||
test $? -eq 0 -o $? -eq 2
|
||||
|
@@ -1,3 +1,21 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu May 24 01:52:37 UTC 2012 - nfbrown@suse.com
|
||||
|
||||
- udev-rules.fix: make sure systemd doesn't try
|
||||
to mount array before it is fully assembled.
|
||||
(bnc#752869)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue May 22 05:15:52 UTC 2012 - nfbrown@suse.com
|
||||
|
||||
- boot.md/mkinitrd-boot.sh: complete any incremental
|
||||
assembly before attempting to assemble arrays.
|
||||
If incremental assembly has partialy assembled
|
||||
degraded arrays, now is the time to start them going.
|
||||
(bnc#752869)
|
||||
- mdamd.cron: send daily reports if any arrays are
|
||||
degraded.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri May 18 07:16:59 UTC 2012 - nfbrown@suse.com
|
||||
|
||||
|
35
mdadm.cron
Normal file
35
mdadm.cron
Normal file
@@ -0,0 +1,35 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Run "mdadm --monitor --oneshot" once a day to ensure
|
||||
# degraded arrays don't go unnoticed.
|
||||
|
||||
mdadm_BIN=/sbin/mdadm
|
||||
mdadm_CONFIG=/etc/sysconfig/mdadm
|
||||
|
||||
[ -x $mdadm_BIN ] || exit 0
|
||||
|
||||
[ -r $mdadm_CONFIG ] && . $mdadm_CONFIG
|
||||
|
||||
if [ x$MDADM_MAIL != x"" ]; then
|
||||
MDADM_MAIL="-m \"$MDADM_MAIL\""
|
||||
fi
|
||||
|
||||
if [ x$MDADM_PROGRAM != x"" ]; then
|
||||
MDADM_PROGRAM="-p \"$MDADM_PROGRAM\""
|
||||
fi
|
||||
|
||||
if [ x$MDADM_SCAN = x"yes" ]; then
|
||||
MDADM_SCAN="-s"
|
||||
else
|
||||
MDADM_SCAN=""
|
||||
fi
|
||||
|
||||
if [ x$MDADM_CONFIG != x"" ]; then
|
||||
MDADM_CONFIG="-c \"$MDADM_CONFIG\""
|
||||
fi
|
||||
|
||||
# using --syslog avoids annoying warnings if no MAIL or PROGRAM are given
|
||||
# in sysconfig or mdadm.conf
|
||||
eval $mdadm_BIN -F $MDADM_RAIDDEVICES --oneshot --syslog $MDADM_MAIL $MDADM_PROGRAM $MDADM_SCAN $MDADM_SEND_MAIL $MDADM_CONFIG
|
||||
|
||||
exit 0
|
@@ -35,6 +35,8 @@ Source3: mdadmd
|
||||
Source4: boot.md
|
||||
Source5: mkinitrd-setup.sh
|
||||
Source6: mkinitrd-boot.sh
|
||||
Source7: mdadm.cron
|
||||
Patch1: udev-rules.fix
|
||||
|
||||
%description
|
||||
Mdadm is a program that can be used to control Linux md devices. It is
|
||||
@@ -43,6 +45,7 @@ programs but with a very different interface.
|
||||
|
||||
%prep
|
||||
%setup -q -a1
|
||||
%patch1 -p1
|
||||
|
||||
%build
|
||||
make %{?_smp_mflags} CC="%__cc" CXFLAGS="$RPM_OPT_FLAGS -Wno-error"
|
||||
@@ -59,6 +62,8 @@ install -m 755 %{S:4} %{S:3} $RPM_BUILD_ROOT%{_sysconfdir}/init.d/
|
||||
install -d $RPM_BUILD_ROOT/lib/mkinitrd/scripts
|
||||
install -m 755 %{S:5} $RPM_BUILD_ROOT/lib/mkinitrd/scripts/setup-md.sh
|
||||
install -m 755 %{S:6} $RPM_BUILD_ROOT/lib/mkinitrd/scripts/boot-md.sh
|
||||
install -d $RPM_BUILD_ROOT/etc/cron.daily
|
||||
install -m 755 %{S:7} $RPM_BUILD_ROOT/etc/cron.daily/mdadm
|
||||
install -m 644 %{S:2} $RPM_BUILD_ROOT%{_var}/adm/fillup-templates/
|
||||
ln -sf ../../etc/init.d/mdadmd $RPM_BUILD_ROOT/%{_sbindir}/rcmdadmd
|
||||
rm -rf $RPM_BUILD_ROOT/run/mdadm
|
||||
@@ -114,8 +119,10 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%dir /lib/mkinitrd/scripts
|
||||
/lib/mkinitrd/scripts/setup-md.sh
|
||||
/lib/mkinitrd/scripts/boot-md.sh
|
||||
%dir /lib/udev
|
||||
%dir /lib/udev/rules.d
|
||||
/lib/udev/rules.d/64-md-raid.rules
|
||||
%dir /etc
|
||||
%dir /etc/cron.daily
|
||||
/etc/cron.daily/mdadm
|
||||
|
||||
%changelog
|
||||
|
@@ -127,6 +127,9 @@ md_assemble()
|
||||
fi
|
||||
}
|
||||
|
||||
# run any degraded arrays assembled incrementally
|
||||
wait_for_events
|
||||
$mdadm --incremental --run --scan
|
||||
md_assemble "$resumedev"
|
||||
md_assemble "$rootdev"
|
||||
if [ -n "$md_dev" ] ; then
|
||||
|
28
udev-rules.fix
Normal file
28
udev-rules.fix
Normal file
@@ -0,0 +1,28 @@
|
||||
From 339b77467a7ad5e5354b5ab0542f8148b18c898c Mon Sep 17 00:00:00 2001
|
||||
From: NeilBrown <neilb@suse.de>
|
||||
Date: Thu, 24 May 2012 11:49:49 +1000
|
||||
Subject: [PATCH] udev-rules: prevent systemd from mount devices before they
|
||||
are ready.
|
||||
|
||||
When an array is assembled incrementally, systemd might see it
|
||||
before it is ready, try to mount it, fail, and give up.
|
||||
Result is that array doesn't get mounted.
|
||||
|
||||
If we ask udev to tell systemd that it isn't ready yet in this
|
||||
case, systemd waits until it is ready, and all are happy.
|
||||
|
||||
Signed-off-by: NeilBrown <neilb@suse.de>
|
||||
|
||||
diff --git a/udev-md-raid.rules b/udev-md-raid.rules
|
||||
index f564f70..814c897 100644
|
||||
--- a/udev-md-raid.rules
|
||||
+++ b/udev-md-raid.rules
|
||||
@@ -28,7 +28,7 @@ ENV{DEVTYPE}=="partition", GOTO="md_ignore_state"
|
||||
# never leave state 'inactive'
|
||||
ATTR{md/metadata_version}=="external:[A-Za-z]*", ATTR{md/array_state}=="inactive", GOTO="md_ignore_state"
|
||||
TEST!="md/array_state", GOTO="md_end"
|
||||
-ATTR{md/array_state}=="|clear|inactive", GOTO="md_end"
|
||||
+ATTR{md/array_state}=="|clear|inactive", ENV{SYSTEMD_READY}="0", GOTO="md_end"
|
||||
LABEL="md_ignore_state"
|
||||
|
||||
IMPORT{program}="/sbin/mdadm --detail --export $tempnode"
|
Reference in New Issue
Block a user