summaryrefslogtreecommitdiff
path: root/debian/mdadm-waitidle
diff options
context:
space:
mode:
authorMichael Tokarev <mjt@tls.msk.ru>2014-12-20 08:48:44 +0000
committerMichael Tokarev <mjt@tls.msk.ru>2014-12-20 08:48:44 +0000
commit489bea7ee8e1dbecfa517b8415568044ab57c73a (patch)
tree44d4878d4c7da3f4908ea9a765ef9b8f9c141756 /debian/mdadm-waitidle
mdadm (3.3.2-5) unstable; urgency=medium
* use-tempnode-not-devnode.patch: change udev rules file to use $tempnode which works both on wheezy and jessie udev, instead of $devnode which only works in jessie. At this stage it is better to make rules file compatible with old version instead of adding versioned dependency. Should be removed for jessie+1. (Closes: #770883) * fix Closes: list in previous entry (Closes: #771852) # imported from the archive
Diffstat (limited to 'debian/mdadm-waitidle')
-rw-r--r--debian/mdadm-waitidle56
1 files changed, 56 insertions, 0 deletions
diff --git a/debian/mdadm-waitidle b/debian/mdadm-waitidle
new file mode 100644
index 00000000..920272c7
--- /dev/null
+++ b/debian/mdadm-waitidle
@@ -0,0 +1,56 @@
+#!/bin/sh
+# This script is not used when systemd is running
+### BEGIN INIT INFO
+# Provides: mdadm-waitidle
+# Required-Start:
+# Required-Stop:
+# Should-Stop: halt reboot kexec
+# X-Stop-After: umountroot
+# Default-Start:
+# Default-Stop: 0 6
+# Short-Description: Wait for MD arrays to become idle
+# Description: Waits until all MD arrays are in idle and synced state
+# before halt/reboot.
+### END INIT INFO
+#
+set -eu
+
+MDADM=/sbin/mdadm
+test -x "$MDADM" || exit 0
+test -f /proc/mdstat || exit 0
+
+. /lib/lsb/init-functions
+
+case "${1:-}" in
+
+ start|restart|force-reload)
+ # nothing, the only reason the script is here is to stop arrays
+ ;;
+
+ stop)
+ sync
+ wait=
+ for md in /sys/block/md*/md ; do
+ [ -d "$md" ] || continue
+ [ "$wait" ] || log_action_begin_msg "Waiting for MD arrays to become idle"
+ wait=y
+ [ -w $md/sync_action ] && echo idle > $md/sync_action
+ done
+ if [ "$wait" ]; then
+ # mdadm --wait-clean has a short internal timeout
+ if $MDADM --wait-clean --scan; then
+ log_action_end_msg 0
+ else
+ log_action_end_msg 1
+ sleep 1
+ fi
+ fi
+ ;;
+
+ *)
+ echo "Usage: ${0:-} stop" >&2
+ exit 1;;
+
+esac
+
+exit 0