From 0be3d022964d54e8ab769ebed4006ba8b8d65078 Mon Sep 17 00:00:00 2001 From: Hannes Reinecke Date: Thu, 10 Jul 2014 14:56:54 +0200 Subject: 95zfcp_rules: Store all devices in commandline '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 --- modules.d/95zfcp_rules/module-setup.sh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) Index: dracut-042/modules.d/95zfcp_rules/module-setup.sh =================================================================== --- dracut-042.orig/modules.d/95zfcp_rules/module-setup.sh 2015-06-24 18:02:11.753508198 +0200 +++ dracut-042/modules.d/95zfcp_rules/module-setup.sh 2015-06-24 18:02:15.445718391 +0200 @@ -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));