aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2010-02-13 17:03:49 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2010-02-13 17:03:49 +0000
commit5e3b66ce08317c39c9689ec73ae774feae62e542 (patch)
treec7c34413b4ef3d769a49fa8b4e14b1283f57e725
parent5888d93ee1d9a2c4bda4dd77b1f4c05de427ef09 (diff)
downloadalpine_aports-5e3b66ce08317c39c9689ec73ae774feae62e542.tar.bz2
alpine_aports-5e3b66ce08317c39c9689ec73ae774feae62e542.tar.xz
alpine_aports-5e3b66ce08317c39c9689ec73ae774feae62e542.zip
main/mdadm: fix init.d script
fixes #275 fixes #276
-rw-r--r--main/mdadm/APKBUILD4
-rw-r--r--main/mdadm/mdadm-raid.initd37
2 files changed, 32 insertions, 9 deletions
diff --git a/main/mdadm/APKBUILD b/main/mdadm/APKBUILD
index 9715d51679..b1d4082436 100644
--- a/main/mdadm/APKBUILD
+++ b/main/mdadm/APKBUILD
@@ -2,7 +2,7 @@
2# Maintainer: Natanael Copa <ncopa@alpinelinux.org> 2# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
3pkgname=mdadm 3pkgname=mdadm
4pkgver=3.1.1 4pkgver=3.1.1
5pkgrel=0 5pkgrel=1
6pkgdesc="a tool for managing Linux Software RAID arrays" 6pkgdesc="a tool for managing Linux Software RAID arrays"
7url="http://neil.brown.name/blog/mdadm" 7url="http://neil.brown.name/blog/mdadm"
8license="GPL-2" 8license="GPL-2"
@@ -35,5 +35,5 @@ package() {
35md5sums="8bfeea282d21b5ef8e825122fb359457 mdadm-3.1.1.tar.gz 35md5sums="8bfeea282d21b5ef8e825122fb359457 mdadm-3.1.1.tar.gz
36ce57e798431f7ab89f9b07a7daaa4852 mdadm.initd 36ce57e798431f7ab89f9b07a7daaa4852 mdadm.initd
3716d2b8eb2e17184357db503470fdd8eb mdadm.confd 3716d2b8eb2e17184357db503470fdd8eb mdadm.confd
38cf60ee08fc4fbed0450c5a2d4efc4214 mdadm-raid.initd 38974e3496d2e4b7c9c17c3279388f45ae mdadm-raid.initd
39aa601f072096fb8bae8b8946f59a561f mdadm-uclibc.patch" 39aa601f072096fb8bae8b8946f59a561f mdadm-uclibc.patch"
diff --git a/main/mdadm/mdadm-raid.initd b/main/mdadm/mdadm-raid.initd
index ea84088886..d2479737cd 100644
--- a/main/mdadm/mdadm-raid.initd
+++ b/main/mdadm/mdadm-raid.initd
@@ -1,19 +1,42 @@
1#!/sbin/runscript 1#!/sbin/runscript
2 2
3# script to start raid devices described in /etc/mdadm.conf. 3# script to start raid devices described in /etc/mdadm.conf.
4depend() {
5 before checkfs fsck
6 after modules
7}
4 8
5start() { 9start() {
10 [ -f /etc/mdadm.conf ] || return 0
11 # start all devices that are not already started
6 [ -f /proc/mdstat ] || modprobe -k md > /dev/null 2>&1 12 [ -f /proc/mdstat ] || modprobe -k md > /dev/null 2>&1
13 local tostart=
7 ebegin "Starting RAID devices" 14 ebegin "Starting RAID devices"
8 mdadm -A -s -q 15 for i in $(awk '{print $2}' /etc/mdadm.conf); do
16 [ -b "$i" ] && continue
17 tostart="$tostart $i"
18 done
19 mdadm --assemble --scan --quiet $tostart
9 eend $? 20 eend $?
10} 21}
11 22
23is_mounted_as() {
24 local mnt
25 for mnt in $(awk "\$1 == \"$1\" {print \$2}" /proc/mounts); do
26 [ "$mnt" = "$2" ] && return 0
27 done
28 return 1
29}
30
12stop() { 31stop() {
13 # you need to make sure no device is mounted. 32 # stop all raid devices except anything mounted as /
14 if [ -f /etc/mdadm.conf ] ; then 33 [ -f /etc/mdadm.conf ] || return 0
15 ebegin "Stopping RAID devices" 34 ebegin "Stopping RAID devices"
16 mdadm --stop -q `awk '/^ARRAY/ { print $2 }' /etc/mdadm.conf` 35 local tostop=
17 eend $? 36 for i in $(awk '{print $2}' /etc/mdadm.conf); do
18 fi 37 is_mounted_as $i / && continue
38 tostop="$tostop $i"
39 done
40 mdadm --stop --quiet $tostop
41 eend $?
19} 42}