Author: glen
Date: Wed Jul  1 14:10:03 2009
New Revision: 10413

Modified:
   geninitrd/trunk/mod-multipath.sh
Log:
- process hwhandler in newer multipath tools manner

Modified: geninitrd/trunk/mod-multipath.sh
==============================================================================
--- geninitrd/trunk/mod-multipath.sh    (original)
+++ geninitrd/trunk/mod-multipath.sh    Wed Jul  1 14:10:03 2009
@@ -87,11 +87,9 @@
                lvm_ignore_devices="$lvm_ignore_devices $p"
        done
 
-       # TODO: handle newer multipath-tools:
-       # size=7.0G features='0' hwhandler='0' wp=rw
-       list=$(echo "$info" | awk '/hwhandler=1/{sub(/.*hwhandler=1 /, ""); 
sub(/\]$/, ""); print}')
+       list=$(mp_parse_hwhandler "$info")
        for p in $list; do
-               find_module "dm-$p"
+               find_module "$p"
        done
 
        list=$(mp_parse_policy "$info")
@@ -262,3 +260,31 @@
                }
        ' | sort -u
 }
+
+# parse hwhandler from multipath output
+# takes 'multipath -l' output as input
+mp_parse_hwhandler() {
+       local info="$1"
+
+       # TODO: actually the dm-emc vs scsi-dh-emc is dependant on kernel 
version
+       # not version of the tools installed
+
+       # multipath-tools-0.4.8-0.12.amd64
+       # [size=12G][features=1 queue_if_no_path][hwhandler=1 emc]
+       #
+       # multipath-tools-0.4.8-11.x86_64
+       # size=7.0G features='0' hwhandler='0' wp=rw
+       # size=2.0G features='1 queue_if_no_path' hwhandler='1 emc' wp=rw
+       echo "$info" | sed -ne "
+        # multipath-tools-0.4.8-0.12.amd64
+        /\[hwhandler=1/{
+            s,^.*\[hwhandler=1 \([^]]*\)\].*$,dm-\1,
+            p
+        }
+               # multipath-tools-0.4.8-11.x86_64
+        /hwhandler='1/{
+            s,^.*hwhandler='1 \([^']*\)'.*$,scsi-dh-\1,
+            p
+        }
+    " | sort -u
+}
_______________________________________________
pld-cvs-commit mailing list
pld-cvs-commit@lists.pld-linux.org
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to