summaryrefslogtreecommitdiffstats
path: root/root_init_script.patch
diff options
context:
space:
mode:
Diffstat (limited to 'root_init_script.patch')
-rw-r--r--root_init_script.patch70
1 files changed, 70 insertions, 0 deletions
diff --git a/root_init_script.patch b/root_init_script.patch
new file mode 100644
index 0000000..1376b57
--- /dev/null
+++ b/root_init_script.patch
@@ -0,0 +1,70 @@
+Index: multipath-tools-090724/multipathd/multipathd.init.redhat
+===================================================================
+--- multipath-tools-090724.orig/multipathd/multipathd.init.redhat
++++ multipath-tools-090724/multipathd/multipathd.init.redhat
+@@ -2,7 +2,7 @@
+ #
+ # multipathd Starts the multipath daemon
+ #
+-# chkconfig: - 13 87
++# chkconfig: - 06 87
+ # description: Manages device-mapper multipath devices
+
+ ### BEGIN INIT INFO
+@@ -17,6 +17,7 @@ prog=`basename $DAEMON`
+ initdir=/etc/rc.d/init.d
+ lockdir=/var/lock/subsys
+ sysconfig=/etc/sysconfig
++syspath=/sys/block
+
+
+ . $initdir/functions
+@@ -25,6 +26,36 @@ test -r $sysconfig/$prog && . $sysconfig
+
+ RETVAL=0
+
++teardown_slaves()
++{
++pushd $1 > /dev/null
++if [ -d "slaves" ]; then
++for slave in slaves/*;
++do
++ if [ "$slave" = "slaves/*" ]; then
++ read dev < $1/dev
++ tablename=`dmsetup table --target multipath | sed -n "s/\(.*\): .* $dev .*/\1/p"`
++ if ! [ -z $tablename ]; then
++ echo "Root is on a multipathed device, multipathd can not be stopped"
++ exit 1
++ fi
++ else
++ local_slave=`readlink -f $slave`;
++ teardown_slaves $local_slave;
++ fi
++ done
++
++else
++ read dev < $1/dev
++ tablename=`dmsetup table --target multipath | sed -n "s/\(.*\): .* $dev .*/\1/p"`
++ if ! [ -z $tablename ]; then
++ echo "Root is on a multipathed device, multipathd can not be stopped"
++ exit 1
++ fi
++fi
++popd > /dev/null
++}
++
+ #
+ # See how we were called.
+ #
+@@ -39,6 +70,11 @@ start() {
+ }
+
+ stop() {
++ root_dev=$(awk '{ if ($1 !~ /^[ \t]*#/ && $2 == "/") { print $1; }}' /etc/mtab)
++ dm_num=`dmsetup info -c --noheadings -o minor $root_dev`
++ root_dm_device="dm-$dm_num"
++ [ -d $syspath/$root_dm_device ] && teardown_slaves $syspath/$root_dm_device
++
+ echo -n $"Stopping $prog daemon: "
+ killproc $DAEMON
+ RETVAL=$?