diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2010-02-13 17:03:49 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2010-02-13 17:03:49 +0000 |
commit | 5e3b66ce08317c39c9689ec73ae774feae62e542 (patch) | |
tree | c7c34413b4ef3d769a49fa8b4e14b1283f57e725 | |
parent | 5888d93ee1d9a2c4bda4dd77b1f4c05de427ef09 (diff) | |
download | alpine_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/APKBUILD | 4 | ||||
-rw-r--r-- | main/mdadm/mdadm-raid.initd | 37 |
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> |
3 | pkgname=mdadm | 3 | pkgname=mdadm |
4 | pkgver=3.1.1 | 4 | pkgver=3.1.1 |
5 | pkgrel=0 | 5 | pkgrel=1 |
6 | pkgdesc="a tool for managing Linux Software RAID arrays" | 6 | pkgdesc="a tool for managing Linux Software RAID arrays" |
7 | url="http://neil.brown.name/blog/mdadm" | 7 | url="http://neil.brown.name/blog/mdadm" |
8 | license="GPL-2" | 8 | license="GPL-2" |
@@ -35,5 +35,5 @@ package() { | |||
35 | md5sums="8bfeea282d21b5ef8e825122fb359457 mdadm-3.1.1.tar.gz | 35 | md5sums="8bfeea282d21b5ef8e825122fb359457 mdadm-3.1.1.tar.gz |
36 | ce57e798431f7ab89f9b07a7daaa4852 mdadm.initd | 36 | ce57e798431f7ab89f9b07a7daaa4852 mdadm.initd |
37 | 16d2b8eb2e17184357db503470fdd8eb mdadm.confd | 37 | 16d2b8eb2e17184357db503470fdd8eb mdadm.confd |
38 | cf60ee08fc4fbed0450c5a2d4efc4214 mdadm-raid.initd | 38 | 974e3496d2e4b7c9c17c3279388f45ae mdadm-raid.initd |
39 | aa601f072096fb8bae8b8946f59a561f mdadm-uclibc.patch" | 39 | aa601f072096fb8bae8b8946f59a561f 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. |
4 | depend() { | ||
5 | before checkfs fsck | ||
6 | after modules | ||
7 | } | ||
4 | 8 | ||
5 | start() { | 9 | start() { |
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 | ||
23 | is_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 | |||
12 | stop() { | 31 | stop() { |
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 | } |