Accepting request 79195 from Base:System

New upstream mdadm release, and assort minor tidy-ups.

- boot.md: improve 'status' and add 'reload'
  function.  Also change 'Raid' to 'RAID'
  for consistency (bnc#709474)

- Use udev rules file from upstream package, rather
  have having a separate one.

- Update to new upstream 3.2.2 plug git patches.
  Also update FSF address in boot-md.

OBS-URL: https://build.opensuse.org/request/show/79195
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/mdadm?expand=0&rev=60
This commit is contained in:
Sascha Peilicke
2011-08-18 08:19:54 +00:00
committed by Git OBS Bridge
8 changed files with 1054 additions and 78 deletions

View File

@@ -1,40 +0,0 @@
# do not edit this file, it will be overwritten on update
SUBSYSTEM!="block", GOTO="md_end"
ACTION!="add|change", GOTO="md_end"
# import data from a raid member and activate it
ENV{ID_FS_TYPE}=="linux_raid_member", PROGRAM="/bin/grep -qs '^AUTO -all' /etc/mdadm.conf", IMPORT{program}="/sbin/mdadm --examine --export $tempnode", RUN+="/sbin/mdadm --incremental $env{DEVNAME}"
# import data from a raid set
KERNEL!="md*", GOTO="md_end"
ENV{DEVTYPE}!="disk",GOTO="md_not_disk"
#this extra caution avoids some races with the device disappearing
TEST!="md/array_state", GOTO="md_end"
# container devices have a metadata version of e.g. 'external:ddf' and
# never leave state 'inactive'
ATTR{md/metadata_version}=="external:[A-Za-z]*", ATTR{md/array_state}=="inactive", GOTO="md_ignore_state"
ATTR{md/array_state}=="|clear|inactive", GOTO="md_end"
LABEL="md_ignore_state"
IMPORT{program}="/sbin/mdadm --detail --export $tempnode"
ENV{MD_NAME}=="?*", SYMLINK+="disk/by-id/md-name-$env{MD_NAME}", OPTIONS+="string_escape=replace"
ENV{MD_UUID}=="?*", SYMLINK+="disk/by-id/md-uuid-$env{MD_UUID}"
ENV{MD_DEVNAME}=="?*", SYMLINK+="md/$env{MD_DEVNAME}"
LABEL="md_not_disk"
ENV{DEVTYPE}!="partition", GOTO="md_vol_id"
IMPORT{program}="/sbin/mdadm --detail --export %r/$parent"
ENV{MD_NAME}=="?*", SYMLINK+="disk/by-id/md-name-$env{MD_NAME}-part%n", OPTIONS+="string_escape=replace"
ENV{MD_UUID}=="?*", SYMLINK+="disk/by-id/md-uuid-$env{MD_UUID}-part%n"
ENV{MD_DEVNAME}=="*[^0-9]", SYMLINK+="md/$env{MD_DEVNAME}%n"
ENV{MD_DEVNAME}=="*[0-9]", SYMLINK+="md/$env{MD_DEVNAME}p%n"
LABEL="md_vol_id"
IMPORT{program}="/sbin/blkid -o udev -p $tempnode"
OPTIONS+="link_priority=100"
ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}"
ENV{ID_FS_USAGE}=="filesystem|other", ENV{ID_FS_LABEL_ENC}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}"
LABEL="md_end"

33
boot.md
View File

@@ -1,6 +1,6 @@
#!/bin/sh
#
# SUSE system startup script for MD Raid autostart
# SUSE system startup script for MD RAID autostart
# Copyright (C) 1995--2005 Kurt Garloff, SUSE / Novell Inc.
# Copyright (C) 2006 Marian Jancar, SUSE / Novell Inc.
#
@@ -15,9 +15,9 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307,
# USA.
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301 USA.
#
### BEGIN INIT INFO
# Provides: boot.md
@@ -96,7 +96,7 @@ function _rc_exit {
case "$1" in
start)
echo -n "Starting MD Raid "
echo -n "Starting MD RAID "
# create the /var/run/mdadm symlink if needed
mkdir -p /dev/.mdadm
@@ -137,17 +137,32 @@ case "$1" in
fi
;;
stop)
echo -n "Shutting down MD Raid "
echo -n "Not shutting down MD RAID - reboot/halt scripts do this."
rc_failed 3
# Remember status and be verbose
rc_status -v
;;
status)
rc_failed 4
echo -n "MD RAID arrays:"
count=`grep -c ' active ' /proc/mdstat 2> /dev/null`
case $count in
0 ) echo -n " No arrays active"; rc_failed 3;;
1 ) echo -n " 1 array active";;
* ) echo -n " $count arrays active";;
esac
rc_status -v
;;
reload)
# We cannot really reload the kernel module, or reassemble the
# arrays, but we can restart mdmon. It will replace existing
# mdmon, or exit quietly if there is nothing to do.
echo -n "MD RAID: restarting mdmon if it is needed."
/sbin/mdmon --all --takeover
rc_status -v
;;
*)
echo "Usage: $0 {start|stop|status}"
echo "Usage: $0 {start|stop|status|reload}"
exit 1
;;
esac

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:849ad0ad4ad3c1d2d8806a16b30e1f59ab2daf313cb103807207f7cba889ea63
size 288578

3
mdadm-3.2.2.tar.bz2 Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0d1a04e688b082bc88846e3f524abd50bc782b6ffc06123140f7d358c8f9b906
size 357234

1003
mdadm-3.2.2_git3b1dab1bdbda0 Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,3 +1,22 @@
-------------------------------------------------------------------
Thu Aug 18 06:30:45 UTC 2011 - nfbrown@novell.com
- boot.md: improve 'status' and add 'reload'
function. Also change 'Raid' to 'RAID'
for consistency (bnc#709474)
-------------------------------------------------------------------
Thu Aug 18 06:01:39 UTC 2011 - nfbrown@novell.com
- Use udev rules file from upstream package, rather
have having a separate one.
-------------------------------------------------------------------
Thu Aug 18 03:01:57 UTC 2011 - nfbrown@novell.com
- Update to new upstream 3.2.2 plug git patches.
Also update FSF address in boot-md.
-------------------------------------------------------------------
Wed Aug 10 02:54:57 UTC 2011 - crrodriguez@opensuse.org

View File

@@ -19,8 +19,8 @@
Name: mdadm
Version: 3.1.4
Release: 21
Version: 3.2.2
Release: 1
BuildRequires: sgmltool
PreReq: %fillup_prereq %insserv_prereq
Obsoletes: raidtools
@@ -37,9 +37,7 @@ Source3: mdadmd
Source4: boot.md
Source5: mkinitrd-setup.sh
Source6: mkinitrd-boot.sh
Source7: 64-md-raid.rules
# PATCH-FIX-OPENSUSE Fix crash if /proc/mdstat lists 0.9 superblocks (should be upstreamed)
Patch2: mdmon-0.9-superblock-crash.patch
Patch0: mdadm-3.2.2_git3b1dab1bdbda0
%description
Mdadm is a program that can be used to control Linux md devices. It is
@@ -54,7 +52,7 @@ Authors:
%prep
%setup -q -a1
%patch2 -p1
%patch0 -p1
%build
%{suse_update_config -f}
@@ -78,7 +76,7 @@ rm -rf $RPM_BUILD_ROOT/var/run/mdadm
mkdir -p $RPM_BUILD_ROOT/var/run
ln -s mdadm $RPM_BUILD_ROOT/var/run/mdadm
install -d $RPM_BUILD_ROOT/lib/udev/rules.d
install -m 644 %_sourcedir/64-md-raid.rules $RPM_BUILD_ROOT/lib/udev/rules.d
install -m 644 udev-md-raid.rules $RPM_BUILD_ROOT/lib/udev/rules.d/64-md-raid.rules
%post
[ -x /sbin/mkinitrd_setup ] && mkinitrd_setup

View File

@@ -1,19 +0,0 @@
From c4dc5c0aa7aa412bf85f0f6d646ea0c307eb4591 Mon Sep 17 00:00:00 2001
From: Michal Marek <mmarek@suse.cz>
Date: Fri, 19 Mar 2010 11:59:20 +0100
Subject: [PATCH] mdmon: Fix crash if /proc/mdstat lists 0.9 superblocks
Signed-off-by: Michal Marek <mmarek@suse.cz>
================================================================================
--- mdadm-3.1.4/mdmon.c
+++ mdadm-3.1.4/mdmon.c
@@ -300,7 +300,8 @@
/* launch an mdmon instance for each container found */
mdstat = mdstat_read(0, 0);
for (e = mdstat; e; e = e->next) {
- if (strncmp(e->metadata_version, "external:", 9) == 0 &&
+ if (e->metadata_version &&
+ strncmp(e->metadata_version, "external:", 9) == 0 &&
!is_subarray(&e->metadata_version[9])) {
devname = devnum2devname(e->devnum);
/* update cmdline so this mdmon instance can be