File 0110-95zfcp_rules-Store-all-devices-in-commandline.patch of Package dracut.12460

From 0be3d022964d54e8ab769ebed4006ba8b8d65078 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <hare@suse.de>
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 <hare@suse.de>
---
 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));