Bring up multipath devices that are configured in multipath.conf.
authorPeter Jones <pjones@redhat.com>
Tue, 24 Nov 2009 19:47:48 +0000 (14:47 -0500)
committerPeter Jones <pjones@redhat.com>
Wed, 25 Nov 2009 15:54:12 +0000 (10:54 -0500)
This brings up multipath devices which are configured in multipath.conf
as we find them.

modules.d/90multipath/14-multipath-scan.rules [new file with mode: 0644]
modules.d/90multipath/install
modules.d/90multipath/multipath-scan.sh [new file with mode: 0644]

diff --git a/modules.d/90multipath/14-multipath-scan.rules b/modules.d/90multipath/14-multipath-scan.rules
new file mode 100644 (file)
index 0000000..b4acf57
--- /dev/null
@@ -0,0 +1,9 @@
+# scan for multipath devices
+SUBSYSTEM!="block", GOTO="end_mpath_scan"
+KERNEL!="sd*", GOTO="end_mpath_scan"
+PROGRAM=="/bin/sh -c 'for i in //holders/dm-[0-9]*; do [ -e $$i ] && exit 0; done; exit 1;' ", GOTO="end_mpath_scan"
+RUN+="/sbin/modprobe dm-multipath"
+RUN+="/bin/echo 'queuing multipath scan'"
+RUN+="/sbin/initqueue --settled --onetime --unique --name=mpscan /sbin/multipath-scan"
+RUN+="/bin/sh -c '>/tmp/.multipath-scan-%k;'"
+LABEL="end_mpath_scan"
index 375db6d..26a3fda 100755 (executable)
@@ -27,3 +27,6 @@ done
 inst_hook pre-trigger 02 "$moddir/multipathd.sh"
 inst_hook pre-pivot   02 "$moddir/multipathd-stop.sh"
 inst_rules 40-multipath.rules
+
+inst "$moddir/multipath-scan.sh" /sbin/multipath-scan
+inst_rules "$moddir/14-multipath-scan.rules"
diff --git a/modules.d/90multipath/multipath-scan.sh b/modules.d/90multipath/multipath-scan.sh
new file mode 100644 (file)
index 0000000..0e1d3f2
--- /dev/null
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+# scan for multipaths if udev has settled
+
+. /lib/dracut-lib.sh
+
+[ -d /etc/multipath ] || mkdir -p /etc/multipath
+mpdevs=$(
+    for f in /tmp/.multipath-scan-* ; do
+        [ -e "$f" ] || continue
+        echo -n "${f##/tmp/.multipath-scan-} "
+    done
+)
+
+[ -e /etc/multipath.conf ] || exit 1
+multipath ${mpdevs}