]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
95zfcp_rules: Store all devices in commandline
authorHannes Reinecke <hare@suse.de>
Thu, 10 Jul 2014 12:56:54 +0000 (14:56 +0200)
committerDaniel Molkentin <dmolkentin@suse.com>
Fri, 23 Jun 2017 19:27:38 +0000 (21:27 +0200)
'for_each_host_dev_and_slaves' would stop at the first found
device, so the cmdline() call would never list all required
devices. Use 'for_each_host_dev_and_slaves_all' instead and
filter out duplicates.

Signed-off-by: Hannes Reinecke <hare@suse.de>
modules.d/95zfcp_rules/module-setup.sh

index d6a33b13d9d287d6934b0c1aa6a4b8ae8c1b34a6..f7400f8eea67f6e1f4c1f302d04ecdf6d79cd6a1 100755 (executable)
@@ -14,11 +14,11 @@ cmdline() {
         _wwpn=$(cat ${_sdev}/wwpn)
         _ccw=$(cat ${_sdev}/hba_id)
         echo "rd.zfcp=${_ccw},${_wwpn},${_lun}"
-        return 1
+        return 0
     }
     [[ $hostonly ]] || [[ $mount_needs ]] && {
-        for_each_host_dev_and_slaves is_zfcp
-    }
+        for_each_host_dev_and_slaves_all is_zfcp
+    } | sort | uniq
 }
 
 # called by dracut
@@ -29,6 +29,7 @@ check() {
     require_binaries /usr/lib/udev/collect || return 1
 
     [[ $hostonly ]] || [[ $mount_needs ]] && {
+        found=0
         for _ccw in /sys/bus/ccw/devices/*/host* ; do
             [ -d "$_ccw" ] || continue
             found=$(($found+1));