Hello community,

here is the log from the commit of package dracut for openSUSE:Factory checked 
in at 2014-06-30 21:43:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/dracut (Old)
 and      /work/SRC/openSUSE:Factory/.dracut.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "dracut"

Changes:
--------
--- /work/SRC/openSUSE:Factory/dracut/dracut.changes    2014-06-25 
10:49:00.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.dracut.new/dracut.changes       2014-06-30 
21:43:26.000000000 +0200
@@ -1,0 +2,46 @@
+Thu Jun 26 16:41:58 CEST 2014 - h...@suse.de
+
+- 95dasd_rules: Fixup rd.dasd parsing
+  * Add: 0079-95dasd_rules-fixup-rd.dasd-parsing.patch
+- 95dasd_rules: Print out rd.dasd command-line
+  * Add: 0080-95dasd_rules-print-out-rd.dasd-commandline.patch
+- 95dasd_mod: do not set module parameter
+  * Add: 0081-95dasd_mod-do-not-set-module-parameters-if-dasd_cio_.patch
+- 00warpclock: Check for /sbin/hwclock (bnc#884513)
+  * Add: 0082-00warpclock-check-for-sbin-hwclock.patch
+- 95zfcp_rules: Fixup rd.zfcp parsing
+  * Add: 0083-95zfcp_rules-Fixup-rd.zfcp-parsing.patch
+- 95rootfs_block: terminate commandline parameter
+  * Add: 0084-95rootfs-block-Correctly-terminate-commandline-param.patch
+- 95zfcp_rules: Print out rd.zfcp command-line
+  * Add: 0085-95zfcp_rules-print-out-rd.zfcp-commandline-parameter.patch
+- 95zfcp_rules: Auto-generate ipl device rule
+  * Add: 0086-95zfcp_rules-Auto-generate-udev-rule-for-ipl-device.patch
+- 95dasd_rules: Auto-generate ipl device rule
+  * Add: 0087-95dasd_rules-Auto-generate-udev-rule-for-ipl-device.patch
+
+-------------------------------------------------------------------
+Mon Jun 23 14:13:53 CEST 2014 - h...@suse.de
+
+- More empty commandline fixes
+  * Add: 0074-More-empty-cmdline-fixes.patch
+- 95dasd_rules: enable parsing of rd.dasd= commandline parameter
+  * Add: 0075-95dasd_rules-enable-parsing-of-rd.dasd-commandline-p.patch
+- Correctly set cio_ignore for dynamic s390 rules
+  * Add: 0076-Correctly-set-cio_ignore-for-dynamic-s390-rules.patch
+- 90multipath: add missing 11-dm-mpath.rules file (bnc#883149)
+  * Add: 0077-90multipath-add-missing-11-dm-mpath.rules-file.patch
+- Restore original IFS value (bnc#883770)
+  * Add: 0078-Restore-original-IFS-value.patch
+
+-------------------------------------------------------------------
+Wed Jun 18 02:00:28 CEST 2014 - tbehr...@suse.com
+
+- Fix non-export of journal dev boot options
+  * Add: 0071-Fix-non-export-of-journal-dev-boot-options.patch
+- Also export root= boot param for hostonly-cmdline
+  * Add: 0072-Also-export-root-boot-param-for-hostonly-cmdline-cas.patch
+- Don't create lots of empty cmdline files
+  * Add: 0073-Don-t-create-lots-of-empty-cmdline-files-for-hostonl.patch
+
+-------------------------------------------------------------------

New:
----
  0071-Fix-non-export-of-journal-dev-boot-options.patch
  0072-Also-export-root-boot-param-for-hostonly-cmdline-cas.patch
  0073-Don-t-create-lots-of-empty-cmdline-files-for-hostonl.patch
  0074-More-empty-cmdline-fixes.patch
  0075-95dasd_rules-enable-parsing-of-rd.dasd-commandline-p.patch
  0076-Correctly-set-cio_ignore-for-dynamic-s390-rules.patch
  0077-90multipath-add-missing-11-dm-mpath.rules-file.patch
  0078-Restore-original-IFS-value.patch
  0079-95dasd_rules-fixup-rd.dasd-parsing.patch
  0080-95dasd_rules-print-out-rd.dasd-commandline.patch
  0081-95dasd_mod-do-not-set-module-parameters-if-dasd_cio_.patch
  0082-00warpclock-check-for-sbin-hwclock.patch
  0083-95zfcp_rules-Fixup-rd.zfcp-parsing.patch
  0084-95rootfs-block-Correctly-terminate-commandline-param.patch
  0085-95zfcp_rules-print-out-rd.zfcp-commandline-parameter.patch
  0086-95zfcp_rules-Auto-generate-udev-rule-for-ipl-device.patch
  0087-95dasd_rules-Auto-generate-udev-rule-for-ipl-device.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ dracut.spec ++++++
--- /var/tmp/diff_new_pack.e1VV93/_old  2014-06-30 21:43:27.000000000 +0200
+++ /var/tmp/diff_new_pack.e1VV93/_new  2014-06-30 21:43:27.000000000 +0200
@@ -91,6 +91,23 @@
 Patch68:        0068-95fcoe-uefi-Test-for-EFI-firmware.patch
 Patch69:        0069-81cio_ignore-skip-module-if-cio_ignore-is-not-active.patch
 Patch70:        0070-81cio_ignore-rewrite-module.patch
+Patch71:        0071-Fix-non-export-of-journal-dev-boot-options.patch
+Patch72:        0072-Also-export-root-boot-param-for-hostonly-cmdline-cas.patch
+Patch73:        0073-Don-t-create-lots-of-empty-cmdline-files-for-hostonl.patch
+Patch74:        0074-More-empty-cmdline-fixes.patch
+Patch75:        0075-95dasd_rules-enable-parsing-of-rd.dasd-commandline-p.patch
+Patch76:        0076-Correctly-set-cio_ignore-for-dynamic-s390-rules.patch
+Patch77:        0077-90multipath-add-missing-11-dm-mpath.rules-file.patch
+Patch78:        0078-Restore-original-IFS-value.patch
+Patch79:        0079-95dasd_rules-fixup-rd.dasd-parsing.patch
+Patch80:        0080-95dasd_rules-print-out-rd.dasd-commandline.patch
+Patch81:        0081-95dasd_mod-do-not-set-module-parameters-if-dasd_cio_.patch
+Patch82:        0082-00warpclock-check-for-sbin-hwclock.patch
+Patch83:        0083-95zfcp_rules-Fixup-rd.zfcp-parsing.patch
+Patch84:        0084-95rootfs-block-Correctly-terminate-commandline-param.patch
+Patch85:        0085-95zfcp_rules-print-out-rd.zfcp-commandline-parameter.patch
+Patch86:        0086-95zfcp_rules-Auto-generate-udev-rule-for-ipl-device.patch
+Patch87:        0087-95dasd_rules-Auto-generate-udev-rule-for-ipl-device.patch
 
 BuildRequires:  asciidoc
 BuildRequires:  bash
@@ -202,6 +219,23 @@
 %patch68 -p1
 %patch69 -p1
 %patch70 -p1
+%patch71 -p1
+%patch72 -p1
+%patch73 -p1
+%patch74 -p1
+%patch75 -p1
+%patch76 -p1
+%patch77 -p1
+%patch78 -p1
+%patch79 -p1
+%patch80 -p1
+%patch81 -p1
+%patch82 -p1
+%patch83 -p1
+%patch84 -p1
+%patch85 -p1
+%patch86 -p1
+%patch87 -p1
 
 %build
 %configure\

++++++ 0071-Fix-non-export-of-journal-dev-boot-options.patch ++++++
>From f483c78483992a7778751f9a01bbf09feb2b5bbe Mon Sep 17 00:00:00 2001
From: Thorsten Behrens <tbehr...@suse.com>
Date: Wed, 18 Jun 2014 01:57:29 +0200
Subject: Fix non-export of journal dev boot options.

cmdline_journal does not contain linefeeds anymore, so read
silently skipped it altogether.

Signed-off-by: Thorsten Behrens <tbehr...@suse.com>
---
 modules.d/95rootfs-block/module-setup.sh | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/modules.d/95rootfs-block/module-setup.sh 
b/modules.d/95rootfs-block/module-setup.sh
index b209ab6..5f1b826 100755
--- a/modules.d/95rootfs-block/module-setup.sh
+++ b/modules.d/95rootfs-block/module-setup.sh
@@ -45,9 +45,8 @@ cmdline() {
 # called by dracut
 install() {
     if [[ $hostonly_cmdline == "yes" ]]; then
-        cmdline_journal | while read journaldev; do
-            [[ $journaldev ]] && printf "%s\n" "$journaldev" >> 
"${initdir}/etc/cmdline.d/95root-journaldev.conf"
-        done
+        local _journaldev=$(cmdline_journal)
+        [[ $_journaldev ]] && printf "%s\n" "$_journaldev" >> 
"${initdir}/etc/cmdline.d/95root-journaldev.conf"
     fi
 
     inst_multiple umount
-- 
1.8.4.5

++++++ 0072-Also-export-root-boot-param-for-hostonly-cmdline-cas.patch ++++++
>From df582ab4c05fc417ce9b6b8a8bed4e259041013b Mon Sep 17 00:00:00 2001
From: Thorsten Behrens <tbehr...@suse.com>
Date: Wed, 18 Jun 2014 02:00:28 +0200
Subject: Also export root= boot param for hostonly-cmdline case.

If there's a root fallback, at least attempt to have it falling
back to the last root filesystem this system ran off of.

Signed-off-by: Thorsten Behrens <tbehr...@suse.com>
---
 modules.d/95rootfs-block/module-setup.sh | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/modules.d/95rootfs-block/module-setup.sh 
b/modules.d/95rootfs-block/module-setup.sh
index 5f1b826..b868d0b 100755
--- a/modules.d/95rootfs-block/module-setup.sh
+++ b/modules.d/95rootfs-block/module-setup.sh
@@ -31,14 +31,18 @@ cmdline_journal() {
     return 0
 }
 
-# called by dracut
-cmdline() {
+cmdline_rootfs() {
     local dev=/dev/block/$(find_root_block_device)
     if [ -e $dev ]; then
         printf " root=%s" "$(shorten_persistent_dev "$(get_persistent_dev 
"$dev")")"
         printf " rootflags=%s" "$(find_mp_fsopts /)"
         printf " rootfstype=%s" "$(find_mp_fstype /)"
     fi
+}
+
+# called by dracut
+cmdline() {
+    cmdline_rootfs
     cmdline_journal
 }
 
@@ -47,6 +51,8 @@ install() {
     if [[ $hostonly_cmdline == "yes" ]]; then
         local _journaldev=$(cmdline_journal)
         [[ $_journaldev ]] && printf "%s\n" "$_journaldev" >> 
"${initdir}/etc/cmdline.d/95root-journaldev.conf"
+        local _rootdev=$(cmdline_rootfs)
+        [[ $_rootdev ]] && printf "%s\n" "$_rootdev" >> 
"${initdir}/etc/cmdline.d/95root-dev.conf"
     fi
 
     inst_multiple umount
-- 
1.8.4.5

++++++ 0073-Don-t-create-lots-of-empty-cmdline-files-for-hostonl.patch ++++++
>From 706f28a7bc193455fcd0656f70adaee442f12ff8 Mon Sep 17 00:00:00 2001
From: Thorsten Behrens <tbehr...@suse.com>
Date: Wed, 18 Jun 2014 02:09:38 +0200
Subject: Don't create lots of empty cmdline files for hostonly-cmdline case

This aligns other places piping cmdline() output to cmdline.d files
with the earlier fix for 95rootfs-block.

Signed-off-by: Thorsten Behrens <tbehr...@suse.com>
---
 modules.d/90crypt/module-setup.sh  | 4 ++--
 modules.d/90dmraid/module-setup.sh | 4 ++--
 modules.d/90lvm/module-setup.sh    | 4 ++--
 modules.d/90mdraid/module-setup.sh | 4 ++--
 modules.d/95resume/module-setup.sh | 5 ++---
 5 files changed, 10 insertions(+), 11 deletions(-)

diff --git a/modules.d/90crypt/module-setup.sh 
b/modules.d/90crypt/module-setup.sh
index 5707404..e423a95 100755
--- a/modules.d/90crypt/module-setup.sh
+++ b/modules.d/90crypt/module-setup.sh
@@ -52,8 +52,8 @@ cmdline() {
 install() {
 
     if [[ $hostonly_cmdline == "yes" ]]; then
-        cmdline >> "${initdir}/etc/cmdline.d/90crypt.conf"
-        echo >> "${initdir}/etc/cmdline.d/90crypt.conf"
+        local _cryptconf=$(cmdline)
+        [[ $_cryptconf ]] && printf "%s\n" "$_cryptconf" >> 
"${initdir}/etc/cmdline.d/90crypt.conf"
     fi
 
     inst_multiple cryptsetup rmdir readlink umount
diff --git a/modules.d/90dmraid/module-setup.sh 
b/modules.d/90dmraid/module-setup.sh
index aebb28d..3769dd0 100755
--- a/modules.d/90dmraid/module-setup.sh
+++ b/modules.d/90dmraid/module-setup.sh
@@ -66,8 +66,8 @@ install() {
     local _i
 
     if [[ $hostonly_cmdline == "yes" ]]; then
-        cmdline >> "${initdir}/etc/cmdline.d/90dmraid.conf"
-        echo >> "${initdir}/etc/cmdline.d/90dmraid.conf"
+        local _raidconf=$(cmdline)
+        [[ $_raidconf ]] && printf "%s\n" "$_raidconf" >> 
"${initdir}/etc/cmdline.d/90dmraid.conf"
     fi
 
     inst_multiple dmraid
diff --git a/modules.d/90lvm/module-setup.sh b/modules.d/90lvm/module-setup.sh
index 5b810b9..2a5b392 100755
--- a/modules.d/90lvm/module-setup.sh
+++ b/modules.d/90lvm/module-setup.sh
@@ -51,8 +51,8 @@ install() {
     inst lvm
 
     if [[ $hostonly_cmdline == "yes" ]]; then
-        cmdline >> "${initdir}/etc/cmdline.d/90lvm.conf"
-        echo >> "${initdir}/etc/cmdline.d/90lvm.conf"
+        local _lvmconf=$(cmdline)
+        [[ $_lvmconf ]] && printf "%s\n" "$_lvmconf" >> 
"${initdir}/etc/cmdline.d/90lvm.conf"
     fi
 
     inst_rules "$moddir/64-lvm.rules"
diff --git a/modules.d/90mdraid/module-setup.sh 
b/modules.d/90mdraid/module-setup.sh
index 4963537..da464b8 100755
--- a/modules.d/90mdraid/module-setup.sh
+++ b/modules.d/90mdraid/module-setup.sh
@@ -73,8 +73,8 @@ install() {
     inst $(command -v mdadm) /sbin/mdadm
 
     if [[ $hostonly_cmdline == "yes" ]]; then
-        cmdline  >> "${initdir}/etc/cmdline.d/90mdraid.conf"
-        echo  >> "${initdir}/etc/cmdline.d/90mdraid.conf"
+        local _raidconf=$(cmdline)
+        [[ $_raidconf ]] && printf "%s\n" "$_raidconf" >> 
"${initdir}/etc/cmdline.d/90mdraid.conf"
     fi
 
     # <mdadm-3.3 udev rule
diff --git a/modules.d/95resume/module-setup.sh 
b/modules.d/95resume/module-setup.sh
index 7f3cf24..b1044ed 100755
--- a/modules.d/95resume/module-setup.sh
+++ b/modules.d/95resume/module-setup.sh
@@ -33,9 +33,8 @@ cmdline() {
 # called by dracut
 install() {
     local _bin
-
-    cmdline  >> "${initdir}/etc/cmdline.d/95resume.conf"
-    echo  >> "${initdir}/etc/cmdline.d/95resume.conf"
+    local _resumeconf=$(cmdline)
+    [[ $_resumeconf ]] && printf "%s\n" "$_resumeconf" >> 
"${initdir}/etc/cmdline.d/95resume.conf"
 
     # Optional uswsusp support
     for _bin in /usr/sbin/resume /usr/lib/suspend/resume 
/usr/lib/uswsusp/resume
-- 
1.8.4.5

++++++ 0074-More-empty-cmdline-fixes.patch ++++++
>From c323ff844931d7b9d171d3c11f8c3152c346a62a Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <h...@suse.de>
Date: Wed, 18 Jun 2014 09:59:22 +0200
Subject: More empty cmdline fixes

This fixes up some more modules which might print out empty
commandline files.

Signed-off-by: Hannes Reinecke <h...@suse.de>
---
 modules.d/81cio_ignore/module-setup.sh |  5 +++--
 modules.d/95fcoe/module-setup.sh       |  4 ++--
 modules.d/95iscsi/module-setup.sh      | 13 +++++++------
 3 files changed, 12 insertions(+), 10 deletions(-)

diff --git a/modules.d/81cio_ignore/module-setup.sh 
b/modules.d/81cio_ignore/module-setup.sh
index 42ae2f9..37b414b 100644
--- a/modules.d/81cio_ignore/module-setup.sh
+++ b/modules.d/81cio_ignore/module-setup.sh
@@ -30,8 +30,9 @@ cmdline() {
 
 # called by dracut
 install() {
-    if [[ $hostonly_cmdline == "yes" ]];then
-       cmdline >> "${initdir}/etc/cmdline.d/01cio_accept.conf"
+    if [[ $hostonly_cmdline == "yes" ]] ; then
+        local _cio_accept=$(cmdline)
+        [[ $_cio_accept ]] && printf "%s\n" "$_cio_accept" >> 
"${initdir}/etc/cmdline.d/01cio_accept.conf"
     fi
 
     inst_hook cmdline 20 "$moddir/parse-cio_accept.sh"
diff --git a/modules.d/95fcoe/module-setup.sh b/modules.d/95fcoe/module-setup.sh
index 57d5c1e..9ca4c67 100755
--- a/modules.d/95fcoe/module-setup.sh
+++ b/modules.d/95fcoe/module-setup.sh
@@ -74,8 +74,8 @@ install() {
     mkdir -m 0755 -p "$initdir/var/lib/lldpad"
 
     if [[ $hostonly_cmdline == "yes" ]] ; then
-        cmdline >> "${initdir}/etc/cmdline.d/95fcoe.conf"
-        echo >> "${initdir}/etc/cmdline.d/95fcoe.conf"
+        local _fcoeconf=$(cmdline)
+        [[ $_fcoeconf ]] && printf "%s\n" "$_fcoeconf" >> 
"${initdir}/etc/cmdline.d/95fcoe.conf"
     fi
     inst "$moddir/fcoe-up.sh" "/sbin/fcoe-up"
     inst "$moddir/fcoe-edd.sh" "/sbin/fcoe-edd"
diff --git a/modules.d/95iscsi/module-setup.sh 
b/modules.d/95iscsi/module-setup.sh
index e94e913..b90e298 100755
--- a/modules.d/95iscsi/module-setup.sh
+++ b/modules.d/95iscsi/module-setup.sh
@@ -78,12 +78,6 @@ depends() {
 installkernel() {
     local _arch=$(uname -m)
 
-    # Detect iBFT and perform mandatory steps
-    if [[ $hostonly_cmdline == "yes" ]] ; then
-        install_ibft > "${initdir}/etc/cmdline.d/95iscsi.conf"
-        echo >> "${initdir}/etc/cmdline.d/95iscsi.conf"
-    fi
-
     instmods bnx2i qla4xxx cxgb3i cxgb4i be2iscsi
     hostonly="" instmods iscsi_tcp iscsi_ibft crc32c iscsi_boot_sysfs
     iscsi_module_filter() {
@@ -133,6 +127,13 @@ install() {
     inst_multiple umount iscsistart hostname iscsi-iname
     inst_multiple -o iscsiuio
     inst_libdir_file 'libgcc_s.so*'
+
+    # Detect iBFT and perform mandatory steps
+    if [[ $hostonly_cmdline == "yes" ]] ; then
+        local _ibftconf=$(install_ibft)
+        [[ $_ibftconf ]] && printf "%s\n" "$_ibftconf" >> 
"${initdir}/etc/cmdline.d/95iscsi.conf"
+    fi
+
     inst_hook cmdline 90 "$moddir/parse-iscsiroot.sh"
     inst_hook cleanup 90 "$moddir/cleanup-iscsi.sh"
     inst "$moddir/iscsiroot.sh" "/sbin/iscsiroot"
-- 
1.8.4.5

++++++ 0075-95dasd_rules-enable-parsing-of-rd.dasd-commandline-p.patch ++++++
>From 1ab0a485f8e3a3b0ba62ea2f920fd3457039e7f1 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <h...@suse.de>
Date: Wed, 18 Jun 2014 15:10:46 +0200
Subject: 95dasd_rules: enable parsing of rd.dasd= commandline parameter

Dracut documents the 'rd.dasd=' parameter, so we should be
enabling the usage of this parameter, too.

Signed-off-by: Hannes Reinecke <h...@suse.de>
---
 modules.d/95dasd_rules/parse-dasd.sh | 37 ++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/modules.d/95dasd_rules/parse-dasd.sh 
b/modules.d/95dasd_rules/parse-dasd.sh
index 9389c44..a0ba1ff 100755
--- a/modules.d/95dasd_rules/parse-dasd.sh
+++ b/modules.d/95dasd_rules/parse-dasd.sh
@@ -54,3 +54,40 @@ for dasd_arg in $(getargs root=) $(getargs resume=); do
         fi
     )
 done
+
+for dasd_arg in $(getargs rd.dasd=); do
+    (
+        IFS=","
+        set -- $dasd_arg
+        unset IFS
+        while (($# > 0)); do
+            case $1 in
+                autodetect|probeonly)
+                    shift
+                    ;;
+                *-*)
+                    range=$1
+                    IFS="-"
+                    set -- $range
+                    start=${1#0.0.}
+                    shift
+                    end=${1#0.0.}
+                    shift
+                    unset IFS
+                    for dev in $(seq $(( 10#$start )) $(( 10#$end )) ) ; do
+                        create_udev_rule $(printf "0.0.%04d" "$dev")
+                    done
+                    ;;
+                *)
+                    dev=${1%(ro)}
+                    if [ "$dev" != "$1" ] ; then
+                        ro=1
+                    fi
+                    dev=${dev#0.0.}
+                    create_udev_rule $(printf "0.0.%04d" $(( 10#$dev )) )
+                    shift
+                    ;;
+            esac
+        done
+    )
+done
-- 
1.8.4.5

++++++ 0076-Correctly-set-cio_ignore-for-dynamic-s390-rules.patch ++++++
>From 7a725ea4a1cb606edd3f060f46818250f2a82a1a Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <h...@suse.de>
Date: Wed, 18 Jun 2014 15:17:21 +0200
Subject: Correctly set cio_ignore for dynamic s390 rules

When converting 'rd.zfcp' and 'rd.dasd' into udev rules we
need to make sure the enable those device ids via cio_ignore,
otherwise the rules might never be called.

Signed-off-by: Hannes Reinecke <h...@suse.de>
---
 modules.d/95dasd_rules/parse-dasd.sh | 3 +++
 modules.d/95zfcp_rules/parse-zfcp.sh | 3 +++
 2 files changed, 6 insertions(+)

diff --git a/modules.d/95dasd_rules/parse-dasd.sh 
b/modules.d/95dasd_rules/parse-dasd.sh
index a0ba1ff..94a4b30 100755
--- a/modules.d/95dasd_rules/parse-dasd.sh
+++ b/modules.d/95dasd_rules/parse-dasd.sh
@@ -38,6 +38,9 @@ ACTION=="add", SUBSYSTEM=="ccw", KERNEL=="$ccw", 
IMPORT{program}="collect $ccw %
 ACTION=="add", SUBSYSTEM=="drivers", KERNEL=="$_drv", IMPORT{program}="collect 
$ccw %k ${ccw} $_drv"
 ACTION=="add", ENV{COLLECT_$ccw}=="0", ATTR{[ccw/$ccw]online}="1"
 EOF
+    if [ -x /sbin/cio_ignore ] && ! cio_ignore -i $ccw > /dev/null ; then
+        cio_ignore -r $ccw
+    fi
 }
 
 for dasd_arg in $(getargs root=) $(getargs resume=); do
diff --git a/modules.d/95zfcp_rules/parse-zfcp.sh 
b/modules.d/95zfcp_rules/parse-zfcp.sh
index 24dbdd3..8538ae3 100755
--- a/modules.d/95zfcp_rules/parse-zfcp.sh
+++ b/modules.d/95zfcp_rules/parse-zfcp.sh
@@ -37,6 +37,9 @@ EOF
 ACTION=="add", KERNEL=="rport-*", ATTR{port_name}=="$wwpn", SUBSYSTEMS=="ccw", 
KERNELS=="$ccw", ATTR{[ccw/$ccw]$wwpn/unit_add}="$lun"
 EOF
     fi
+    if [ -x /sbin/cio_ignore ] && ! cio_ignore -i $ccw > /dev/null ; then
+        cio_ignore -r $ccw
+    fi
 }
 
 for zfcp_arg in $(getargs rd.zfcp); do
-- 
1.8.4.5

++++++ 0077-90multipath-add-missing-11-dm-mpath.rules-file.patch ++++++
>From 3d4030e354b12686cb91d41a1ec8bc00df37ea5f Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <h...@suse.de>
Date: Wed, 18 Jun 2014 17:48:16 +0200
Subject: 90multipath: add missing 11-dm-mpath.rules file

The 11-dm-mpath.rules file had been missing, causing
blacklisting to not work properly.

References: bnc#883149

Signed-off-by: Hannes Reinecke <h...@suse.de>
---
 modules.d/90multipath/module-setup.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/modules.d/90multipath/module-setup.sh 
b/modules.d/90multipath/module-setup.sh
index 7b20709..22ff580 100755
--- a/modules.d/90multipath/module-setup.sh
+++ b/modules.d/90multipath/module-setup.sh
@@ -102,7 +102,7 @@ install() {
 
     inst_hook cleanup   80 "$moddir/multipathd-needshutdown.sh"
 
-    inst_rules 56-multipath.rules \
+    inst_rules 11-dm-mpath.rules 56-multipath.rules \
         66-kpartx.rules 67-kpartx-compat.rules
 }
 
-- 
1.8.4.5

++++++ 0078-Restore-original-IFS-value.patch ++++++
>From 3ad963984b30a990c1ac94c81deb410322daafb6 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <h...@suse.de>
Date: Mon, 23 Jun 2014 14:06:47 +0200
Subject: Restore original IFS value

Whenever the IFS setting is modified it needs to be restored to
its original value. Otherwise it'll lead to unexpected results.

References: bnc#883770

Signed-off-by: Hannes Reinecke <h...@suse.de>
---
 modules.d/81cio_ignore/parse-cio_accept.sh | 3 ++-
 modules.d/90kernel-modules/insmodpost.sh   | 2 +-
 modules.d/90kernel-modules/parse-kernel.sh | 4 ++++
 modules.d/95dasd/parse-dasd.sh             | 2 +-
 modules.d/95dasd_rules/parse-dasd.sh       | 8 +++++---
 modules.d/95iscsi/module-setup.sh          | 6 ++++--
 modules.d/95zfcp/parse-zfcp.sh             | 2 +-
 modules.d/95zfcp_rules/parse-zfcp.sh       | 4 +++-
 modules.d/98systemd/dracut-pre-udev.sh     | 4 ++--
 9 files changed, 23 insertions(+), 12 deletions(-)

diff --git a/modules.d/81cio_ignore/parse-cio_accept.sh 
b/modules.d/81cio_ignore/parse-cio_accept.sh
index fec8a92..4f899d2 100644
--- a/modules.d/81cio_ignore/parse-cio_accept.sh
+++ b/modules.d/81cio_ignore/parse-cio_accept.sh
@@ -10,6 +10,7 @@ if [ -z $CIO_IGNORE ] ; then
     return
 fi
 if [ -n "$CIO_ACCEPT" ] ; then
+    OLDIFS="$IFS"
     IFS=,
     set -- $CIO_ACCEPT
     while (($# > 0)) ; do
@@ -17,5 +18,5 @@ if [ -n "$CIO_ACCEPT" ] ; then
         cio_ignore --remove $1
         shift
     done
-    unset IFS
+    IFS="$OLDIFS"
 fi
diff --git a/modules.d/90kernel-modules/insmodpost.sh 
b/modules.d/90kernel-modules/insmodpost.sh
index d2b8723..141f091 100755
--- a/modules.d/90kernel-modules/insmodpost.sh
+++ b/modules.d/90kernel-modules/insmodpost.sh
@@ -6,7 +6,7 @@
 
 for modlist in $(getargs rd.driver.post -d rdinsmodpost=); do
     (
-        IFS=,
+        local IFS=,
         for m in $modlist; do
             modprobe $m
         done
diff --git a/modules.d/90kernel-modules/parse-kernel.sh 
b/modules.d/90kernel-modules/parse-kernel.sh
index fa891bf..e012e52 100755
--- a/modules.d/90kernel-modules/parse-kernel.sh
+++ b/modules.d/90kernel-modules/parse-kernel.sh
@@ -13,10 +13,12 @@ fi
 
 for i in $(getargs rd.driver.pre -d rdloaddriver=); do
     (
+        OLDIFS="$IFS"
         IFS=,
         for p in $i; do
             modprobe $p 2>&1 | vinfo
         done
+        IFS="$OLDIFS"
     )
 done
 
@@ -25,10 +27,12 @@ done
 
 for i in $(getargs rd.driver.blacklist -d rdblacklist=); do
     (
+        OLDIFS="$IFS"
         IFS=,
         for p in $i; do
             echo "blacklist $p" >>  $_modprobe_d/initramfsblacklist.conf
         done
+        IFS="$OLDIFS"
     )
 done
 
diff --git a/modules.d/95dasd/parse-dasd.sh b/modules.d/95dasd/parse-dasd.sh
index 1aa1455..aba720b 100755
--- a/modules.d/95dasd/parse-dasd.sh
+++ b/modules.d/95dasd/parse-dasd.sh
@@ -3,7 +3,7 @@
 # ex: ts=8 sw=4 sts=4 et filetype=sh
 for dasd_arg in $(getargs rd.dasd= -d rd_DASD= DASD=); do
     (
-        IFS=","
+        local IFS=","
         set -- $dasd_arg
         echo "$@" | normalize_dasd_arg >> /etc/dasd.conf
     )
diff --git a/modules.d/95dasd_rules/parse-dasd.sh 
b/modules.d/95dasd_rules/parse-dasd.sh
index 94a4b30..02b4aea 100755
--- a/modules.d/95dasd_rules/parse-dasd.sh
+++ b/modules.d/95dasd_rules/parse-dasd.sh
@@ -51,8 +51,10 @@ for dasd_arg in $(getargs root=) $(getargs resume=); do
                 break;
         esac
         if [ -n "$ccw_arg" ] ; then
+            OLDIFS="$IFS"
             IFS="-"
             set -- $ccw_arg
+            IFS="$OLDIFS"
             create_udev_rule $2
         fi
     )
@@ -60,9 +62,8 @@ done
 
 for dasd_arg in $(getargs rd.dasd=); do
     (
-        IFS=","
+        local IFS=","
         set -- $dasd_arg
-        unset IFS
         while (($# > 0)); do
             case $1 in
                 autodetect|probeonly)
@@ -70,13 +71,14 @@ for dasd_arg in $(getargs rd.dasd=); do
                     ;;
                 *-*)
                     range=$1
+                    OLDIFS="$IFS"
                     IFS="-"
                     set -- $range
                     start=${1#0.0.}
                     shift
                     end=${1#0.0.}
                     shift
-                    unset IFS
+                    IFS="$OLDIFS"
                     for dev in $(seq $(( 10#$start )) $(( 10#$end )) ) ; do
                         create_udev_rule $(printf "0.0.%04d" "$dev")
                     done
diff --git a/modules.d/95iscsi/module-setup.sh 
b/modules.d/95iscsi/module-setup.sh
index b90e298..cfa6f39 100755
--- a/modules.d/95iscsi/module-setup.sh
+++ b/modules.d/95iscsi/module-setup.sh
@@ -3,16 +3,18 @@
 # ex: ts=8 sw=4 sts=4 et filetype=sh
 
 get_ibft_mod() {
-    local ibft_mac=$1
+    local ibft_mac=$1 IFS
     # Return the iSCSI offload module for a given MAC address
     iscsiadm -m iface | while read iface_name iface_desc ; do
+        OLDIFS="$IFS"
         IFS=$','
         set -- $iface_desc
+        IFS="$OLDIFS"
         if [ "$ibft_mac" = "$2" ] ; then
             echo $1
             return 0
         fi
-        unset IFS
+        
     done
 }
 
diff --git a/modules.d/95zfcp/parse-zfcp.sh b/modules.d/95zfcp/parse-zfcp.sh
index 9b22d93..1d21472 100755
--- a/modules.d/95zfcp/parse-zfcp.sh
+++ b/modules.d/95zfcp/parse-zfcp.sh
@@ -6,7 +6,7 @@ getargbool 1 rd.zfcp.conf -d -n rd_NO_ZFCPCONF || rm 
/etc/zfcp.conf
 
 for zfcp_arg in $(getargs rd.zfcp -d 'rd_ZFCP='); do
     (
-        IFS=","
+        local IFS=","
         set $zfcp_arg
         echo "$@" >> /etc/zfcp.conf
     )
diff --git a/modules.d/95zfcp_rules/parse-zfcp.sh 
b/modules.d/95zfcp_rules/parse-zfcp.sh
index 8538ae3..56152da 100755
--- a/modules.d/95zfcp_rules/parse-zfcp.sh
+++ b/modules.d/95zfcp_rules/parse-zfcp.sh
@@ -44,7 +44,7 @@ EOF
 
 for zfcp_arg in $(getargs rd.zfcp); do
     (
-        IFS=","
+        local IFS=","
         set $zfcp_arg
         create_udev_rule $1 $2 $3
     )
@@ -58,8 +58,10 @@ for zfcp_arg in $(getargs root=) $(getargs resume=); do
                 break;
         esac
         if [ -n "$ccw_arg" ] ; then
+            OLDIFS="$IFS"
             IFS="-"
             set -- $ccw_arg
+            IFS="$OLDIFS"
             wwpn=${4%:*}
             lun=${4#*:}
             create_udev_rule $2 $wwpn $lun
diff --git a/modules.d/98systemd/dracut-pre-udev.sh 
b/modules.d/98systemd/dracut-pre-udev.sh
index 638da40..77977d2 100755
--- a/modules.d/98systemd/dracut-pre-udev.sh
+++ b/modules.d/98systemd/dracut-pre-udev.sh
@@ -26,7 +26,7 @@ fi
 
 for i in $(getargs rd.driver.pre -d rdloaddriver=); do
     (
-        IFS=,
+        local IFS=,
         for p in $i; do
             modprobe $p 2>&1 | vinfo
         done
@@ -38,7 +38,7 @@ done
 
 for i in $(getargs rd.driver.blacklist -d rdblacklist=); do
     (
-        IFS=,
+        local IFS=,
         for p in $i; do
             echo "blacklist $p" >>  $_modprobe_d/initramfsblacklist.conf
         done
-- 
1.8.4.5

++++++ 0079-95dasd_rules-fixup-rd.dasd-parsing.patch ++++++
>From b302dd2a53864bdd4ff271275fa244f654cb92ca Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <h...@suse.de>
Date: Thu, 26 Jun 2014 10:49:03 +0200
Subject: 95dasd_rules: fixup rd.dasd parsing

There were some errors when rd.dasd parsing, resulting in the
device never to be activated. And we should check for
cio_ignore even if a udev rules has been found.

Signed-off-by: Hannes Reinecke <h...@suse.de>
---
 modules.d/95dasd_rules/parse-dasd.sh | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/modules.d/95dasd_rules/parse-dasd.sh 
b/modules.d/95dasd_rules/parse-dasd.sh
index 02b4aea..43ca87a 100755
--- a/modules.d/95dasd_rules/parse-dasd.sh
+++ b/modules.d/95dasd_rules/parse-dasd.sh
@@ -31,6 +31,10 @@ create_udev_rule() {
     esac
     [ -z "${_drv}" ] && return 0
 
+    if [ -x /sbin/cio_ignore ] && cio_ignore -i $ccw > /dev/null ; then
+        cio_ignore -r $ccw
+    fi
+
     [ -e ${_rule} ] && return 0
 
     cat > $_rule <<EOF
@@ -38,9 +42,6 @@ ACTION=="add", SUBSYSTEM=="ccw", KERNEL=="$ccw", 
IMPORT{program}="collect $ccw %
 ACTION=="add", SUBSYSTEM=="drivers", KERNEL=="$_drv", IMPORT{program}="collect 
$ccw %k ${ccw} $_drv"
 ACTION=="add", ENV{COLLECT_$ccw}=="0", ATTR{[ccw/$ccw]online}="1"
 EOF
-    if [ -x /sbin/cio_ignore ] && ! cio_ignore -i $ccw > /dev/null ; then
-        cio_ignore -r $ccw
-    fi
 }
 
 for dasd_arg in $(getargs root=) $(getargs resume=); do
@@ -48,7 +49,7 @@ for dasd_arg in $(getargs root=) $(getargs resume=); do
         case $dasd_arg in
             /dev/disk/by-path/ccw-*)
                 ccw_arg=${dasd_arg##*/}
-                break;
+                ;;
         esac
         if [ -n "$ccw_arg" ] ; then
             OLDIFS="$IFS"
@@ -79,8 +80,8 @@ for dasd_arg in $(getargs rd.dasd=); do
                     end=${1#0.0.}
                     shift
                     IFS="$OLDIFS"
-                    for dev in $(seq $(( 10#$start )) $(( 10#$end )) ) ; do
-                        create_udev_rule $(printf "0.0.%04d" "$dev")
+                    for dev in $(seq $(( 16#$start )) $(( 16#$end )) ) ; do
+                        create_udev_rule $(printf "0.0.%04x" "$dev")
                     done
                     ;;
                 *)
@@ -89,7 +90,7 @@ for dasd_arg in $(getargs rd.dasd=); do
                         ro=1
                     fi
                     dev=${dev#0.0.}
-                    create_udev_rule $(printf "0.0.%04d" $(( 10#$dev )) )
+                    create_udev_rule $(printf "0.0.%04x" $(( 16#$dev )) )
                     shift
                     ;;
             esac
-- 
1.8.4.5

++++++ 0080-95dasd_rules-print-out-rd.dasd-commandline.patch ++++++
>From 3e2e526a74cdad48d40a1ec58dac9f709d8fef0e Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <h...@suse.de>
Date: Thu, 26 Jun 2014 10:50:43 +0200
Subject: 95dasd_rules: print out 'rd.dasd' commandline

When a DASD is found to be required for the rootfs we should
be printing out a 'rd.dasd' commandline parameter. This not
only enables us to correctly enable the device with cio_ignore,
we can also inspect the resulting initrd to figure out which
devices are required to mount the rootfs.

Signed-off-by: Hannes Reinecke <h...@suse.de>
---
 modules.d/95dasd_rules/module-setup.sh | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/modules.d/95dasd_rules/module-setup.sh 
b/modules.d/95dasd_rules/module-setup.sh
index 451fc25..e4736a2 100755
--- a/modules.d/95dasd_rules/module-setup.sh
+++ b/modules.d/95dasd_rules/module-setup.sh
@@ -3,10 +3,39 @@
 # ex: ts=8 sw=4 sts=4 et filetype=sh
 
 # called by dracut
+cmdline() {
+    is_dasd() {
+        local _dev=$1
+        local _devpath=$(cd -P /sys/dev/block/$_dev ; echo $PWD)
+
+        [ "${_devpath#*/dasd}" == "$_devpath" ] && return 1
+        _ccw="${_devpath%%/block/*}"
+        echo "rd.dasd=${_ccw##*/}"
+        return 0
+    }
+    [[ $hostonly ]] || [[ $mount_needs ]] && {
+        for_each_host_dev_and_slaves is_dasd || return 255
+    }
+}
+
+# called by dracut
 check() {
     local _arch=$(uname -m)
+    local found=0
+    local bdev
     [ "$_arch" = "s390" -o "$_arch" = "s390x" ] || return 1
     require_binaries /usr/lib/udev/collect || return 1
+
+    [[ $hostonly ]] || [[ $mount_needs ]] && {
+        for bdev in /sys/block/* ; do
+            case "${bdev##*/}" in
+                dasd*)
+                    found=$(($found+1));
+                    break;
+            esac
+        done
+        [ $found -eq 0 ] && return 255
+    }
     return 0
 }
 
@@ -19,6 +48,10 @@ depends() {
 # called by dracut
 install() {
     inst_hook cmdline 30 "$moddir/parse-dasd.sh"
+    if [[ $hostonly_cmdline == "yes" ]] ; then
+        local _dasd=$(cmdline)
+        [[ $_dasd ]] && printf "%s\n" "$_dasd" >> 
"${initdir}/etc/cmdline.d/95dasd.conf"
+    fi
     if [[ $hostonly ]] ; then
         inst_rules_wildcard 51-dasd-*.rules
         inst_rules_wildcard 41-s390x-dasd-*.rules
-- 
1.8.4.5

++++++ 0081-95dasd_mod-do-not-set-module-parameters-if-dasd_cio_.patch ++++++
>From 95dc2742b9304029068a2b320e011bdfcc4087ea Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <h...@suse.de>
Date: Thu, 26 Jun 2014 10:53:01 +0200
Subject: 95dasd_mod: do not set module parameters if dasd_cio_free is not
 present

We're now parsing the 'rd.dasd' parameter from 95dasd_rules, so
setting the 'dasd_mod' module parameter should be dropped here.

Signed-off-by: Hannes Reinecke <h...@suse.de>
---
 modules.d/95dasd_mod/parse-dasd-mod.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/modules.d/95dasd_mod/parse-dasd-mod.sh 
b/modules.d/95dasd_mod/parse-dasd-mod.sh
index 0236d12..0b8adef 100755
--- a/modules.d/95dasd_mod/parse-dasd-mod.sh
+++ b/modules.d/95dasd_mod/parse-dasd-mod.sh
@@ -9,7 +9,7 @@ done
 
 mod_args="${mod_args#*,}"
 
-if [ -n "$mod_args" ]; then
+if [ -x /sbin/dasd_cio_free -a -n "$mod_args" ]; then
     [ -d /etc/modprobe.d ] || mkdir -m 0755 -p /etc/modprobe.d
     echo "options dasd_mod dasd=$mod_args" >> /etc/modprobe.d/dasd_mod.conf
 fi
-- 
1.8.4.5

++++++ 0082-00warpclock-check-for-sbin-hwclock.patch ++++++
>From 354e32e863a19d3539c3bf1b6affc98630b0003d Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <h...@suse.de>
Date: Thu, 26 Jun 2014 10:44:42 +0200
Subject: 00warpclock: check for /sbin/hwclock

We need to check if /sbin/hwclock exists to avoid error messages
when running dracut.

References: bnc#884513

Signed-off-by: Hannes Reinecke <h...@suse.de>
---
 modules.d/00warpclock/module-setup.sh | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/modules.d/00warpclock/module-setup.sh 
b/modules.d/00warpclock/module-setup.sh
index 4d18795..5aec4eb 100755
--- a/modules.d/00warpclock/module-setup.sh
+++ b/modules.d/00warpclock/module-setup.sh
@@ -4,7 +4,8 @@
 
 # called by dracut
 check() {
-    [ -e /etc/localtime -a -e /etc/adjtime ]
+    [ -e /etc/localtime -a -e /etc/adjtime ] || return 1
+    require_binaries /sbin/hwclock || return 1
 }
 
 # called by dracut
-- 
1.8.4.5

++++++ 0083-95zfcp_rules-Fixup-rd.zfcp-parsing.patch ++++++
>From 90b21dafd469ce4a8ac56944ce825f90c0782b16 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <h...@suse.de>
Date: Thu, 26 Jun 2014 11:52:29 +0200
Subject: 95zfcp_rules: Fixup rd.zfcp parsing

There were some errors when parsing rd.zfcp, causing the device
never to be activated.

Signed-off-by: Hannes Reinecke <h...@suse.de>
---
 modules.d/95zfcp_rules/parse-zfcp.sh | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/modules.d/95zfcp_rules/parse-zfcp.sh 
b/modules.d/95zfcp_rules/parse-zfcp.sh
index 56152da..bb5cd3a 100755
--- a/modules.d/95zfcp_rules/parse-zfcp.sh
+++ b/modules.d/95zfcp_rules/parse-zfcp.sh
@@ -7,9 +7,7 @@ create_udev_rule() {
     local wwpn=$2
     local lun=$3
     local _rule=/etc/udev/rules.d/51-zfcp-${ccw}.rules
-
     local _cu_type _dev_type
-    local _rule=/etc/udev/rules.d/51-zfcp-${ccw}.rules
 
     if [ -e /sys/bus/ccw/devices/${ccw} ] ; then
         read _cu_type < /sys/bus/ccw/devices/${ccw}/cutype
@@ -22,6 +20,10 @@ create_udev_rule() {
         return 0;
     fi
 
+    if [ -x /sbin/cio_ignore ] && cio_ignore -i $ccw > /dev/null ; then
+        cio_ignore -r $ccw
+    fi
+
     [ -e ${_rule} ] && return 0
 
     if [ ! -f "$_rule" ] ; then
@@ -37,9 +39,6 @@ EOF
 ACTION=="add", KERNEL=="rport-*", ATTR{port_name}=="$wwpn", SUBSYSTEMS=="ccw", 
KERNELS=="$ccw", ATTR{[ccw/$ccw]$wwpn/unit_add}="$lun"
 EOF
     fi
-    if [ -x /sbin/cio_ignore ] && ! cio_ignore -i $ccw > /dev/null ; then
-        cio_ignore -r $ccw
-    fi
 }
 
 for zfcp_arg in $(getargs rd.zfcp); do
@@ -55,7 +54,7 @@ for zfcp_arg in $(getargs root=) $(getargs resume=); do
         case $zfcp_arg in
             /dev/disk/by-path/ccw-*)
                 ccw_arg=${zfcp_arg##*/}
-                break;
+                ;;
         esac
         if [ -n "$ccw_arg" ] ; then
             OLDIFS="$IFS"
-- 
1.8.4.5

++++++ 0084-95rootfs-block-Correctly-terminate-commandline-param.patch ++++++
>From 21e4cbee5d852108880cedc9edc619cdd9b296a5 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <h...@suse.de>
Date: Thu, 26 Jun 2014 13:41:56 +0200
Subject: 95rootfs-block: Correctly terminate commandline parameter

95rootfs-block would not terminate the commandline parameter with
a space or newline, instead it'll rely on the main routine from
dracut.sh to do this.
Which will cause unexpected problems for any modules called
after this.

So terminate the commandline parameters correctly here and remove
the newline from dracut.sh.

Signed-off-by: Hannes Reinecke <h...@suse.de>
---
 dracut.sh                                | 1 -
 modules.d/95rootfs-block/module-setup.sh | 8 ++++----
 2 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/dracut.sh b/dracut.sh
index a58e134..40006e7 100755
--- a/dracut.sh
+++ b/dracut.sh
@@ -1166,7 +1166,6 @@ if [[ $print_cmdline ]]; then
         module_cmdline "$_d_mod"
     done
     unset moddir
-    printf "\n"
     exit 0
 fi
 
diff --git a/modules.d/95rootfs-block/module-setup.sh 
b/modules.d/95rootfs-block/module-setup.sh
index b868d0b..a620786 100755
--- a/modules.d/95rootfs-block/module-setup.sh
+++ b/modules.d/95rootfs-block/module-setup.sh
@@ -24,7 +24,7 @@ cmdline_journal() {
             fi
 
             if [ -n "$journaldev" ]; then
-                printf " root.journaldev=%s" "$journaldev"
+                echo "root.journaldev=${journaldev}"
             fi
         done
     fi
@@ -34,9 +34,9 @@ cmdline_journal() {
 cmdline_rootfs() {
     local dev=/dev/block/$(find_root_block_device)
     if [ -e $dev ]; then
-        printf " root=%s" "$(shorten_persistent_dev "$(get_persistent_dev 
"$dev")")"
-        printf " rootflags=%s" "$(find_mp_fsopts /)"
-        printf " rootfstype=%s" "$(find_mp_fstype /)"
+        printf "root=%s" "$(shorten_persistent_dev "$(get_persistent_dev 
"$dev")")"
+        printf "rootflags=%s" "$(find_mp_fsopts /)"
+        printf "rootfstype=%s\n" "$(find_mp_fstype /)"
     fi
 }
 
-- 
1.8.4.5

++++++ 0085-95zfcp_rules-print-out-rd.zfcp-commandline-parameter.patch ++++++
>From 3d918eb5be673f243dc75b358a35e1ed307f0ea5 Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <h...@suse.de>
Date: Thu, 26 Jun 2014 13:44:05 +0200
Subject: 95zfcp_rules: print out rd.zfcp commandline parameter

When called with '--hostonly-cmdline' the module should print
out the configuration.

Signed-off-by: Hannes Reinecke <h...@suse.de>
---
 modules.d/95zfcp_rules/module-setup.sh | 39 +++++++++++++++++++++++++++++++++-
 1 file changed, 38 insertions(+), 1 deletion(-)

diff --git a/modules.d/95zfcp_rules/module-setup.sh 
b/modules.d/95zfcp_rules/module-setup.sh
index 849645c..3f80754 100755
--- a/modules.d/95zfcp_rules/module-setup.sh
+++ b/modules.d/95zfcp_rules/module-setup.sh
@@ -3,10 +3,40 @@
 # ex: ts=8 sw=4 sts=4 et filetype=sh
 
 # called by dracut
+cmdline() {
+    is_zfcp() {
+        local _dev=$1
+        local _devpath=$(cd -P /sys/dev/block/$_dev ; echo $PWD)
+        local _sdev _lun _wwpn _ccw
+
+        [ "${_devpath#*/sd}" == "$_devpath" ] && return 1
+        _sdev="${_devpath%%/block/*}"
+        [ -e ${_sdev}/fcp_lun ] || return 1
+        _lun=$(cat ${_sdev}/fcp_lun)
+        _wwpn=$(cat ${_sdev}/wwpn)
+        _ccw=$(cat ${_sdev}/hba_id)
+        echo "rd.zfcp=${_ccw},${_wwpn},${_lun}"
+        return 1
+    }
+    [[ $hostonly ]] || [[ $mount_needs ]] && {
+        for_each_host_dev_and_slaves is_zfcp
+    }
+}
+
+# called by dracut
 check() {
     local _arch=$(uname -m)
+    local _ccw
     [ "$_arch" = "s390" -o "$_arch" = "s390x" ] || return 1
-    require_binaries zfcp_disk_configure /usr/lib/udev/collect || return 1
+    require_binaries /usr/lib/udev/collect || return 1
+
+    [[ $hostonly ]] || [[ $mount_needs ]] && {
+        for _ccw in /sys/bus/ccw/devices/*/host* ; do
+            [ -d "$_ccw" ] || continue
+            found=$(($found+1));
+        done
+        [ $found -eq 0 ] && return 255
+    }
     return 0
 }
 
@@ -19,6 +49,13 @@ depends() {
 install() {
     inst_multiple /usr/lib/udev/collect
     inst_hook cmdline 30 "$moddir/parse-zfcp.sh"
+    if [[ $hostonly_cmdline == "yes" ]] ; then
+        local _zfcp
+
+        for _zfcp in $(cmdline) ; do
+            printf "%s\n" "$zfcp" >> "${initdir}/etc/cmdline.d/94zfcp.conf"
+        done
+    fi
     if [[ $hostonly ]] ; then
         inst_rules_wildcard 51-zfcp-*.rules
         inst_rules_wildcard 41-s390x-zfcp-*.rules
-- 
1.8.4.5

++++++ 0086-95zfcp_rules-Auto-generate-udev-rule-for-ipl-device.patch ++++++
>From 754bda4bcf9698837802b31bd74061702edf6c8c Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <h...@suse.de>
Date: Thu, 26 Jun 2014 14:01:33 +0200
Subject: 95zfcp_rules: Auto-generate udev rule for ipl device

We should auto-generate an udev rule for the ipl device; it'll be
enabled anyway.

Signed-off-by: Hannes Reinecke <h...@suse.de>
---
 modules.d/95zfcp_rules/parse-zfcp.sh | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/modules.d/95zfcp_rules/parse-zfcp.sh 
b/modules.d/95zfcp_rules/parse-zfcp.sh
index bb5cd3a..05c1ed0 100755
--- a/modules.d/95zfcp_rules/parse-zfcp.sh
+++ b/modules.d/95zfcp_rules/parse-zfcp.sh
@@ -41,6 +41,17 @@ EOF
     fi
 }
 
+if [[ -f /sys/firmware/ipl/ipl_type &&
+            $(</sys/firmare/ipl/ipl_type) = "fcp" ]] ; then
+    (
+        local _wwpn=$(cat /sys/firmware/ipl/wwpn)
+        local _lun=$(cat /sys/firmware/ipl/lun)
+        local _ccw=$(cat /sys/firmware/ipl/device)
+
+        create_udev_rule $_ccw $_wwpn $_lun
+    )
+fi
+
 for zfcp_arg in $(getargs rd.zfcp); do
     (
         local IFS=","
@@ -51,6 +62,9 @@ done
 
 for zfcp_arg in $(getargs root=) $(getargs resume=); do
     (
+        local _wwpn
+        local _lun
+
         case $zfcp_arg in
             /dev/disk/by-path/ccw-*)
                 ccw_arg=${zfcp_arg##*/}
@@ -61,8 +75,8 @@ for zfcp_arg in $(getargs root=) $(getargs resume=); do
             IFS="-"
             set -- $ccw_arg
             IFS="$OLDIFS"
-            wwpn=${4%:*}
-            lun=${4#*:}
+            _wwpn=${4%:*}
+            _lun=${4#*:}
             create_udev_rule $2 $wwpn $lun
         fi
     )
-- 
1.8.4.5

++++++ 0087-95dasd_rules-Auto-generate-udev-rule-for-ipl-device.patch ++++++
>From 96af5adcdc4ec9bdbaff4dc053f415060eee301a Mon Sep 17 00:00:00 2001
From: Hannes Reinecke <h...@suse.de>
Date: Thu, 26 Jun 2014 14:04:19 +0200
Subject: 95dasd_rules: Auto-generate udev rule for ipl device

We should be generating a udev rule for the ipl device; it'll
be enabled anyway.

Signed-off-by: Hannes Reinecke <h...@suse.de>
---
 modules.d/95dasd_rules/parse-dasd.sh | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/modules.d/95dasd_rules/parse-dasd.sh 
b/modules.d/95dasd_rules/parse-dasd.sh
index 43ca87a..7b6a3d2 100755
--- a/modules.d/95dasd_rules/parse-dasd.sh
+++ b/modules.d/95dasd_rules/parse-dasd.sh
@@ -44,6 +44,15 @@ ACTION=="add", ENV{COLLECT_$ccw}=="0", 
ATTR{[ccw/$ccw]online}="1"
 EOF
 }
 
+if [[ -f /sys/firmware/ipl/ipl_type &&
+            $(</sys/firmare/ipl/ipl_type) = "ccw" ]] ; then
+    (
+        local _ccw=$(cat /sys/firmware/ipl/device)
+
+        create_udev_rule $_ccw
+    )
+fi
+
 for dasd_arg in $(getargs root=) $(getargs resume=); do
     (
         case $dasd_arg in
-- 
1.8.4.5

-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to