Hello community, here is the log from the commit of package dracut for openSUSE:Factory checked in at 2016-06-13 21:54:33 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 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 2016-04-12 18:57:35.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.dracut.new/dracut.changes 2016-06-13 21:54:40.000000000 +0200 @@ -1,0 +2,60 @@ +Fri Jun 3 14:05:36 UTC 2016 - tr...@suse.de + +- FCOE fix bsc#982588 + * Add 0212-fcoe_reorder_init_path.patch + +------------------------------------------------------------------- +Wed May 4 15:40:37 CEST 2016 - h...@suse.de + +- Port missing SLES patches + * Add 0197-95iscsi-Do-not-require-network-for-qla4xxx-flash-ses.patch + * Add 0198-95iscsi-set-rd.iscsi.firmware-for-qla4xxx-sessions.patch + * Remove 0194-95iscsi-Do-not-require-network-for-qla4xxx-flash-ses.patch + * Remove 0195-95iscsi-set-rd.iscsi.firmware-for-qla4xxx-sessions.patch +- Rewrite patch: + * Add 0302-Revert-90multipath-add-hostonly-multipath.conf-in-ca.patch + * Remove 0001-multipath_revert_mpathconf_binary_use.patch +- Update 0403-95lunmask-Add-module-to-handle-LUN-masking.patch + to match upstream kernel submission (FATE#319786) + +------------------------------------------------------------------- +Tue Apr 26 10:01:19 UTC 2016 - tr...@suse.de + +- Add IFS restoring where it has been lost due to mainline merging + (bsc#977117) +*Add 0500-Reset-IFS-variable.patch + +------------------------------------------------------------------- +Mon Apr 25 12:55:06 UTC 2016 - tr...@suse.de + +- Make sure to install collect binary (bsc#976466) +* Add: 0188-95dasd_rules-Install-collect-udev-helper-binary.patch + +------------------------------------------------------------------- +Wed Apr 20 10:15:34 UTC 2016 - tr...@suse.de + +- Remove version from requires on subpackage +- Add a split provide because of the package split for SLE12 SP1 to SP2 upgrade + +------------------------------------------------------------------- +Tue Apr 12 14:05:55 UTC 2016 - tr...@suse.de + +- Forward port of latest SLES patches (fate#320499) +Add: + * 0001-multipath_revert_mpathconf_binary_use.patch (fate#320499) + * 0170-iscsi-skip-ibft-invalid-dhcp.patch (bsc#953361) + * 0160-s390-update_active_devices_initrd.patch (bsc#939101) + * 0161-95zfcp_rules-simplified-rd.zfcp-commandline-for-NPIV.patch (bsc#964456) + * 0190-replace-iscsistart-with-systemd-service-files.patch (fate#319024) + * 0191-static_network_setup_return_zero.patch (bsc#919179) + * 0192-iscsi_set_boot_protocol_from_ifcfg.patch (bsc#919179) + * 0193-95iscsi-Set-number-of-login-retries.patch (bsc#951003) + * 0196-ibft-wait-for-session-on-all-paths.patch (bsc#951003) + * 0403-95lunmask-Add-module-to-handle-LUN-masking.patch (FATE#319786) + +Added, but still commented in spec file (still needs adjusting): +- Fixup booting from qla4xxx (bsc#951003) + * 0194-95iscsi-Do-not-require-network-for-qla4xxx-flash-ses.patch + * 0195-95iscsi-set-rd.iscsi.firmware-for-qla4xxx-sessions.patch + +------------------------------------------------------------------- New: ---- 0160-s390-update_active_devices_initrd.patch 0161-95zfcp_rules-simplified-rd.zfcp-commandline-for-NPIV.patch 0170-iscsi-skip-ibft-invalid-dhcp.patch 0188-95dasd_rules-Install-collect-udev-helper-binary.patch 0190-replace-iscsistart-with-systemd-service-files.patch 0191-static_network_setup_return_zero.patch 0192-iscsi_set_boot_protocol_from_ifcfg.patch 0193-95iscsi-Set-number-of-login-retries.patch 0196-ibft-wait-for-session-on-all-paths.patch 0197-95iscsi-Do-not-require-network-for-qla4xxx-flash-ses.patch 0198-95iscsi-set-rd.iscsi.firmware-for-qla4xxx-sessions.patch 0212-fcoe_reorder_init_path.patch 0302-Revert-90multipath-add-hostonly-multipath.conf-in-ca.patch 0403-95lunmask-Add-module-to-handle-LUN-masking.patch 0500-Reset-IFS-variable.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ dracut.spec ++++++ --- /var/tmp/diff_new_pack.mCgnr7/_old 2016-06-13 21:54:43.000000000 +0200 +++ /var/tmp/diff_new_pack.mCgnr7/_new 2016-06-13 21:54:43.000000000 +0200 @@ -1,7 +1,7 @@ # # spec file for package dracut # -# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2016 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -53,6 +53,7 @@ Patch159: 0159-network-Try-to-load-xennet.patch Patch162: 0162-network-Request-DHCP-lease-instead-of-getting-applyi.patch Patch169: 0169-network_set_mtu_macaddr_for_dhcp.patch +Patch170: 0170-iscsi-skip-ibft-invalid-dhcp.patch #S390 Patch16: 0016-Add-new-s390x-specific-rule-files.patch @@ -74,11 +75,14 @@ Patch110: 0110-95zfcp_rules-Store-all-devices-in-commandline.patch Patch113: 0113-91zipl-Install-script-as-executable.patch Patch114: 0114-91zipl-Translate-ext2-3-into-ext4.patch +Patch116: 0116-Mark-scripts-as-executable.patch Patch117: 0117-95dasd_rules-Enable-the-device-before-checking-devic.patch Patch118: 0118-95zfcp_rules-Enable-the-device-before-checking-devic.patch Patch123: 0123-95zfcp_rules-fix-typo-in-module_setup.patch Patch157: 0157-Add-boot-zipl-to-host-devs-if-it-is-a-mount-point.patch -Patch116: 0116-Mark-scripts-as-executable.patch +Patch160: 0160-s390-update_active_devices_initrd.patch +Patch161: 0161-95zfcp_rules-simplified-rd.zfcp-commandline-for-NPIV.patch +Patch188: 0188-95dasd_rules-Install-collect-udev-helper-binary.patch #FIPS Patch53: 0053-01fips-fixup-loading-issues.patch @@ -105,6 +109,15 @@ Patch182: 0182-fix-include-parsing.patch Patch183: 0183-fix_add_drivers_hang.patch +# iscsiadm +Patch190: 0190-replace-iscsistart-with-systemd-service-files.patch +Patch191: 0191-static_network_setup_return_zero.patch +Patch192: 0192-iscsi_set_boot_protocol_from_ifcfg.patch +Patch193: 0193-95iscsi-Set-number-of-login-retries.patch +Patch196: 0196-ibft-wait-for-session-on-all-paths.patch +Patch197: 0197-95iscsi-Do-not-require-network-for-qla4xxx-flash-ses.patch +Patch198: 0198-95iscsi-set-rd.iscsi.firmware-for-qla4xxx-sessions.patch + # Submit mainline asap Patch128: 0128-90lvm-Install-dm-snapshot-module.patch Patch200: 0200-dracut_fix_multipath_without_config.patch @@ -118,14 +131,20 @@ Patch208: 0208-no_forced_virtnet.patch Patch209: 0209-fix_modules_load_d_hostonly.patch Patch210: 0210-add_fcoe_uefi_check.patch -Patch211: 0211-fix_multipath_check_hostonly.patch +Patch212: 0212-fcoe_reorder_init_path.patch -## SUSE-specific fixes +# SUSE-specific fixes Patch300: 0300-dracut_dont_use_dpkg_defaults_on_SUSE.patch Patch301: 0301-include_sysconfig_language.patch +Patch302: 0302-Revert-90multipath-add-hostonly-multipath.conf-in-ca.patch +Patch211: 0211-fix_multipath_check_hostonly.patch # New features/improvements Patch402: 0402-driver-fail-summary.patch +Patch403: 0403-95lunmask-Add-module-to-handle-LUN-masking.patch + +# On top patches/fixes which have to be applied late +Patch500: 0500-Reset-IFS-variable.patch BuildRequires: asciidoc BuildRequires: bash @@ -180,13 +199,16 @@ %package tools Summary: Tools to build a local initramfs Group: System/Base -Requires: %{name} = %{version}-%{release} +Requires: %{name} +# split-provides for upgrade from SLES12 SP1 to SLES12 SP2 +Provides: %{name}:%{_bindir}/dracut-catimages %description tools This package contains tools to assemble the local initrd and host configuration. %prep %setup -q + %patch12 -p1 %patch13 -p1 %patch15 -p1 @@ -249,17 +271,27 @@ %patch157 -p1 %patch158 -p1 %patch159 -p1 +%patch160 -p1 +%patch161 -p1 %patch162 -p1 %patch163 -p1 %patch164 -p1 %patch168 -p1 %patch169 -p1 +%patch170 -p1 %patch180 -p1 -# disabled, as it breaks encrypted / on LVM - dimstar, 20151001 -#patch181 -p1 %patch182 -p1 %patch183 -p1 +%patch188 -p1 + +%patch190 -p1 +%patch191 -p1 +%patch192 -p1 +%patch193 -p1 +%patch196 -p1 +%patch197 -p1 +%patch198 -p1 %patch200 -p1 %patch201 -p1 @@ -272,12 +304,17 @@ %patch208 -p1 %patch209 -p1 %patch210 -p1 -%patch211 -p1 +%patch212 -p1 %patch300 -p1 %patch301 -p1 +%patch302 -p1 +%patch211 -p1 %patch402 -p1 +%patch403 -p1 + +%patch500 -p1 %build %configure\ @@ -376,6 +413,7 @@ %{dracutlibdir}/modules.d/02fips-aesni %files tools +%defattr(-,root,root,0755) %{_bindir}/dracut-catimages %{_mandir}/man8/dracut-catimages.8* %dir /boot/dracut @@ -487,6 +525,7 @@ %{dracutlibdir}/modules.d/95dasd_mod %{dracutlibdir}/modules.d/95dasd_rules %{dracutlibdir}/modules.d/95fstab-sys +%{dracutlibdir}/modules.d/95lunmask %{dracutlibdir}/modules.d/95zfcp %{dracutlibdir}/modules.d/95zfcp_rules %{dracutlibdir}/modules.d/95terminfo @@ -515,6 +554,11 @@ %attr(0755,root,root) %{dracutlibdir}/modules.d/99suse/parse-suse-initrd.sh %attr(0755,root,root) %{dracutlibdir}/modules.d/99suse/module-setup.sh +%attr(0755,root,root) %{dracutlibdir}/modules.d/95lunmask/sas_transport_scan_lun.sh +%attr(0755,root,root) %{dracutlibdir}/modules.d/95lunmask/parse-lunmask.sh +%attr(0755,root,root) %{dracutlibdir}/modules.d/95lunmask/fc_transport_scan_lun.sh +%attr(0755,root,root) %{dracutlibdir}/modules.d/95lunmask/module-setup.sh + %config(noreplace) %{_sysconfdir}/logrotate.d/dracut %attr(0640,root,root) %ghost %config(missingok,noreplace) %{_localstatedir}/log/dracut.log %dir %{_unitdir}/initrd.target.wants ++++++ 0015-40network-replace-dhclient-with-wickedd-dhcp-supplic.patch ++++++ --- /var/tmp/diff_new_pack.mCgnr7/_old 2016-06-13 21:54:43.000000000 +0200 +++ /var/tmp/diff_new_pack.mCgnr7/_new 2016-06-13 21:54:43.000000000 +0200 @@ -1,7 +1,7 @@ -From 0aa152e662d2197f92617da4ab813fcd9be6f90f Mon Sep 17 00:00:00 2001 +From 3b7df07e27efd2ef2df4d9d40253ee8185eb4152 Mon Sep 17 00:00:00 2001 From: Pavel Wieczorkiewicz <pwieczorkiew...@suse.com> Date: Mon, 7 Apr 2014 16:26:57 +0200 -Subject: [PATCH] 40network: replace dhclient with wickedd-dhcp-supplicant +Subject: 40network: replace dhclient with wickedd-dhcp-supplicant SLES12 is using wickedd, so we need to replace dhclient with wickedd-dhcp-supplicant. @@ -10,28 +10,27 @@ Signed-off-by: Hannes Reinecke <h...@suse.de> --- - modules.d/40network/dhclient-script.sh | 156 --------------------------------- - modules.d/40network/dhclient.conf | 3 - - modules.d/40network/ifup.sh | 97 ++++++++++++++++++-- - modules.d/40network/kill-dhclient.sh | 17 ---- - modules.d/40network/module-setup.sh | 14 +-- - 5 files changed, 99 insertions(+), 188 deletions(-) - delete mode 100755 modules.d/40network/dhclient-script.sh + modules.d/40network/dhclient.conf | 3 - + modules.d/40network/ifup.sh | 109 ++++++++++++++++++++++++++++------- + modules.d/40network/kill-dhclient.sh | 15 ----- + modules.d/40network/module-setup.sh | 15 +++-- + 4 files changed, 98 insertions(+), 44 deletions(-) delete mode 100644 modules.d/40network/dhclient.conf delete mode 100755 modules.d/40network/kill-dhclient.sh -Index: dracut-044/modules.d/40network/dhclient.conf -=================================================================== ---- dracut-044.orig/modules.d/40network/dhclient.conf +diff --git a/modules.d/40network/dhclient.conf b/modules.d/40network/dhclient.conf +deleted file mode 100644 +index dbf5882..0000000 +--- a/modules.d/40network/dhclient.conf +++ /dev/null @@ -1,3 +0,0 @@ -request subnet-mask, broadcast-address, time-offset, routers, - domain-name, domain-name-servers, domain-search, host-name, - root-path, interface-mtu; -Index: dracut-044/modules.d/40network/ifup.sh -=================================================================== ---- dracut-044.orig/modules.d/40network/ifup.sh -+++ dracut-044/modules.d/40network/ifup.sh +diff --git a/modules.d/40network/ifup.sh b/modules.d/40network/ifup.sh +index 31a04bf..92e4b38 100755 +--- a/modules.d/40network/ifup.sh ++++ b/modules.d/40network/ifup.sh @@ -87,6 +87,70 @@ else [ -e /tmp/net.$(cat /sys/class/net/$netif/address).did-setup ] && exit 0 fi @@ -166,9 +165,10 @@ if [ -e /tmp/bridge.info ]; then . /tmp/bridge.info # start bridge if necessary -Index: dracut-044/modules.d/40network/kill-dhclient.sh -=================================================================== ---- dracut-044.orig/modules.d/40network/kill-dhclient.sh +diff --git a/modules.d/40network/kill-dhclient.sh b/modules.d/40network/kill-dhclient.sh +deleted file mode 100755 +index 9a17495..0000000 +--- a/modules.d/40network/kill-dhclient.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh @@ -186,10 +186,10 @@ - read PID < $f; - kill -9 $PID >/dev/null 2>&1 -done -Index: dracut-044/modules.d/40network/module-setup.sh -=================================================================== ---- dracut-044.orig/modules.d/40network/module-setup.sh -+++ dracut-044/modules.d/40network/module-setup.sh +diff --git a/modules.d/40network/module-setup.sh b/modules.d/40network/module-setup.sh +index 4bf93cc..2252995 100755 +--- a/modules.d/40network/module-setup.sh ++++ b/modules.d/40network/module-setup.sh @@ -1,10 +1,13 @@ #!/bin/bash @@ -236,3 +236,6 @@ _arch=$(uname -m) +-- +2.6.6 + ++++++ 0017-45ifcfg-use-distro-specific-scripts.patch ++++++ --- /var/tmp/diff_new_pack.mCgnr7/_old 2016-06-13 21:54:43.000000000 +0200 +++ /var/tmp/diff_new_pack.mCgnr7/_new 2016-06-13 21:54:43.000000000 +0200 @@ -1,7 +1,7 @@ -From 2bddf461e38b952a79e31650ba828a7ee506cbe9 Mon Sep 17 00:00:00 2001 +From afc08d7bbee93db0b81d20aef00f538fde3209e3 Mon Sep 17 00:00:00 2001 From: Pawel Wieczorkiewicz <pwieczorkiew...@suse.de> Date: Tue, 8 Apr 2014 08:48:27 +0200 -Subject: [PATCH] 45ifcfg: use distro-specific scripts +Subject: 45ifcfg: use distro-specific scripts Detect the system flavor and write the ifcfg files accordingly. @@ -16,15 +16,15 @@ Modified-by: Thomas Rennigner <tr...@suse.de> Modified-by: Fabian Vogt <fv...@suse.com> --- - modules.d/40network/ifup.sh | 1 + - modules.d/40network/module-setup.sh | 7 +++++++ - modules.d/45ifcfg/module-setup.sh | 1 - + modules.d/40network/ifup.sh | 1 + + modules.d/40network/module-setup.sh | 7 +++++++ + modules.d/45ifcfg/module-setup.sh | 1 - 3 files changed, 8 insertions(+), 1 deletion(-) -Index: dracut-044/modules.d/40network/ifup.sh -=================================================================== ---- dracut-044.orig/modules.d/40network/ifup.sh -+++ dracut-044/modules.d/40network/ifup.sh +diff --git a/modules.d/40network/ifup.sh b/modules.d/40network/ifup.sh +index 92e4b38..347c7f7 100755 +--- a/modules.d/40network/ifup.sh ++++ b/modules.d/40network/ifup.sh @@ -189,6 +189,7 @@ do_dhcp() { $dhclient --test $netif > /tmp/leaseinfo.${netif}.dhcp.ipv${1:1:1} dhcp_apply $1 || return $? @@ -33,22 +33,10 @@ echo $netif > /tmp/setup_net_${netif}.ok return 0 } -Index: dracut-044/modules.d/45ifcfg/module-setup.sh -=================================================================== ---- dracut-044.orig/modules.d/45ifcfg/module-setup.sh -+++ dracut-044/modules.d/45ifcfg/module-setup.sh -@@ -2,7 +2,6 @@ - - # called by dracut - check() { -- [[ -d /etc/sysconfig/network-scripts ]] && return 0 - return 255 - } - -Index: dracut-044/modules.d/40network/module-setup.sh -=================================================================== ---- dracut-044.orig/modules.d/40network/module-setup.sh -+++ dracut-044/modules.d/40network/module-setup.sh +diff --git a/modules.d/40network/module-setup.sh b/modules.d/40network/module-setup.sh +index 2252995..fa6c7fc 100755 +--- a/modules.d/40network/module-setup.sh ++++ b/modules.d/40network/module-setup.sh @@ -15,6 +15,13 @@ check() { # called by dracut depends() { @@ -63,3 +51,18 @@ return 0 } +diff --git a/modules.d/45ifcfg/module-setup.sh b/modules.d/45ifcfg/module-setup.sh +index 6791985..60ed92b 100755 +--- a/modules.d/45ifcfg/module-setup.sh ++++ b/modules.d/45ifcfg/module-setup.sh +@@ -2,7 +2,6 @@ + + # called by dracut + check() { +- [[ -d /etc/sysconfig/network-scripts ]] && return 0 + return 255 + } + +-- +2.6.6 + ++++++ 0019-40network-Fix-race-condition-when-wait-for-networks.patch ++++++ --- /var/tmp/diff_new_pack.mCgnr7/_old 2016-06-13 21:54:43.000000000 +0200 +++ /var/tmp/diff_new_pack.mCgnr7/_new 2016-06-13 21:54:43.000000000 +0200 @@ -1,7 +1,7 @@ -From 330bb44b7773c7b861a6aaa32d4524c783a162f0 Mon Sep 17 00:00:00 2001 +From e4a8408698ea1a4d77b1c6d9ba76a7eab93b024a Mon Sep 17 00:00:00 2001 From: Pawel Wieczorkiewicz <pwieczorkiew...@suse.de> Date: Tue, 8 Apr 2014 08:50:55 +0200 -Subject: [PATCH] 40network: Fix race condition when wait for networks +Subject: 40network: Fix race condition when wait for networks If no network related params are specific, but rd.neednet=1 is set, the default initqueue action is to wait until one of the network @@ -17,11 +17,11 @@ modules.d/40network/net-genrules.sh | 3 +++ 1 file changed, 3 insertions(+) -Index: dracut-044/modules.d/40network/net-genrules.sh -=================================================================== ---- dracut-044.orig/modules.d/40network/net-genrules.sh -+++ dracut-044/modules.d/40network/net-genrules.sh -@@ -95,6 +95,9 @@ command -v fix_bootif >/dev/null || . /l +diff --git a/modules.d/40network/net-genrules.sh b/modules.d/40network/net-genrules.sh +index b1c156c..d591161 100755 +--- a/modules.d/40network/net-genrules.sh ++++ b/modules.d/40network/net-genrules.sh +@@ -95,6 +95,9 @@ command -v fix_bootif >/dev/null || . /lib/net-lib.sh cond='ACTION=="add", SUBSYSTEM=="net"' # if you change the name of "91-default-net.rules", also change modules.d/80cms/cmssetup.sh echo "$cond, $runcmd" > /etc/udev/rules.d/91-default-net.rules @@ -31,3 +31,6 @@ fi # if you change the name of "90-net.rules", also change modules.d/80cms/cmssetup.sh +-- +2.6.6 + ++++++ 0048-40network-Only-enable-network-interfaces-if-explicit.patch ++++++ --- /var/tmp/diff_new_pack.mCgnr7/_old 2016-06-13 21:54:43.000000000 +0200 +++ /var/tmp/diff_new_pack.mCgnr7/_new 2016-06-13 21:54:43.000000000 +0200 @@ -1,8 +1,7 @@ -From baf3a57c1fc8d2641c075e2dcdda44f5b26747dc Mon Sep 17 00:00:00 2001 +From 3a951a971fdaa4b51f5375d9b77af0db3c67414e Mon Sep 17 00:00:00 2001 From: Pawel Wieczorkiewicz <pwieczorkiew...@suse.de> Date: Tue, 27 May 2014 11:48:43 +0200 -Subject: [PATCH] 40network: Only enable network interfaces if explicitly - requested +Subject: 40network: Only enable network interfaces if explicitly requested Currently all available network interfaces are started whenever 40network is pulled in. This causes massive delays during bootup. @@ -16,11 +15,11 @@ modules.d/40network/net-genrules.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -Index: dracut-044/modules.d/40network/net-genrules.sh -=================================================================== ---- dracut-044.orig/modules.d/40network/net-genrules.sh -+++ dracut-044/modules.d/40network/net-genrules.sh -@@ -94,8 +94,8 @@ command -v fix_bootif >/dev/null || . /l +diff --git a/modules.d/40network/net-genrules.sh b/modules.d/40network/net-genrules.sh +index d591161..559b325 100755 +--- a/modules.d/40network/net-genrules.sh ++++ b/modules.d/40network/net-genrules.sh +@@ -94,8 +94,8 @@ command -v fix_bootif >/dev/null || . /lib/net-lib.sh else cond='ACTION=="add", SUBSYSTEM=="net"' # if you change the name of "91-default-net.rules", also change modules.d/80cms/cmssetup.sh @@ -30,3 +29,6 @@ echo "[ -f /tmp/net.*.did-setup ]" >$hookdir/initqueue/finished/wait-network.sh fi fi +-- +2.6.6 + ++++++ 0060-45ifcfg-Add-SUSE-specific-write-ifcfg-file.patch ++++++ --- /var/tmp/diff_new_pack.mCgnr7/_old 2016-06-13 21:54:43.000000000 +0200 +++ /var/tmp/diff_new_pack.mCgnr7/_new 2016-06-13 21:54:43.000000000 +0200 @@ -1,4 +1,4 @@ -From b22afa48bc111794259230cf3144262c719b55f5 Mon Sep 17 00:00:00 2001 +From 105e96464320c8acae22ee730717e071e156aa0b Mon Sep 17 00:00:00 2001 From: Pawel Wieczorkiewicz <pwieczorkiew...@suse.com> Date: Wed, 4 Jun 2014 13:00:06 +0200 Subject: 45ifcfg: Add SUSE-specific write-ifcfg file @@ -7,12 +7,13 @@ --- modules.d/45ifcfg/write-ifcfg-suse.sh | 183 ++++++++++++++++++++++++++++++++++ 1 file changed, 183 insertions(+) - create mode 100755 modules.d/45ifcfg/write-ifcfg-suse.sh + create mode 100644 modules.d/45ifcfg/write-ifcfg-suse.sh -Index: dracut-042/modules.d/45ifcfg/write-ifcfg-suse.sh -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ dracut-042/modules.d/45ifcfg/write-ifcfg-suse.sh 2015-06-24 18:02:09.389373610 +0200 +diff --git a/modules.d/45ifcfg/write-ifcfg-suse.sh b/modules.d/45ifcfg/write-ifcfg-suse.sh +new file mode 100644 +index 0000000..4b6350f +--- /dev/null ++++ b/modules.d/45ifcfg/write-ifcfg-suse.sh @@ -0,0 +1,183 @@ +#!/bin/sh +# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- @@ -197,3 +198,6 @@ + copytree /tmp/ifcfg /run/initramfs/state/etc/sysconfig/network + cp /tmp/leaseinfo.* /run/initramfs/state/var/run/wicked/ +} > /dev/null 2>&1 +-- +2.6.6 + ++++++ 0061-45ifcfg-Fixup-error-message-in-write-ifcfg-suse.patch ++++++ --- /var/tmp/diff_new_pack.mCgnr7/_old 2016-06-13 21:54:43.000000000 +0200 +++ /var/tmp/diff_new_pack.mCgnr7/_new 2016-06-13 21:54:43.000000000 +0200 @@ -1,4 +1,4 @@ -From 8bbd0f21e9c85898219bdf0f8dc3d31ccfaaf477 Mon Sep 17 00:00:00 2001 +From 7104ea8c873ef89c9aacdd12a542bc71fc738aaa Mon Sep 17 00:00:00 2001 From: Hannes Reinecke <h...@suse.de> Date: Wed, 4 Jun 2014 13:12:31 +0200 Subject: 45ifcfg: Fixup error message in write-ifcfg-suse @@ -13,10 +13,10 @@ modules.d/45ifcfg/write-ifcfg-suse.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) -Index: dracut-042/modules.d/45ifcfg/write-ifcfg-suse.sh -=================================================================== ---- dracut-042.orig/modules.d/45ifcfg/write-ifcfg-suse.sh 2015-06-24 18:02:09.389373610 +0200 -+++ dracut-042/modules.d/45ifcfg/write-ifcfg-suse.sh 2015-06-24 18:02:09.677390007 +0200 +diff --git a/modules.d/45ifcfg/write-ifcfg-suse.sh b/modules.d/45ifcfg/write-ifcfg-suse.sh +index 4b6350f..e9b4d10 100644 +--- a/modules.d/45ifcfg/write-ifcfg-suse.sh ++++ b/modules.d/45ifcfg/write-ifcfg-suse.sh @@ -32,6 +32,7 @@ for netup in /tmp/net.*.did-setup ; do netif=${netup%%.did-setup} @@ -35,3 +35,6 @@ { echo "# Generated by dracut initrd" echo "NAME='$netif'" +-- +2.6.6 + ++++++ 0066-40network-always-start-netroot-in-ifup.sh.patch ++++++ --- /var/tmp/diff_new_pack.mCgnr7/_old 2016-06-13 21:54:43.000000000 +0200 +++ /var/tmp/diff_new_pack.mCgnr7/_new 2016-06-13 21:54:43.000000000 +0200 @@ -1,4 +1,4 @@ -From ad967a08bbf67171a75acc84a9ea2ffbd9461aa5 Mon Sep 17 00:00:00 2001 +From a9a919e44e0ce5cc5bc4167889a31d87626058e4 Mon Sep 17 00:00:00 2001 From: Hannes Reinecke <h...@suse.de> Date: Wed, 4 Jun 2014 12:04:10 +0200 Subject: 40network: always start netroot in ifup.sh @@ -13,13 +13,13 @@ Signed-off-by: Hannes Reinecke <h...@suse.de> --- - modules.d/40network/ifup.sh | 22 ++++++++-------------- - 1 file changed, 8 insertions(+), 14 deletions(-) + modules.d/40network/ifup.sh | 29 +++++++++++------------------ + 1 file changed, 11 insertions(+), 18 deletions(-) -Index: dracut-044/modules.d/40network/ifup.sh -=================================================================== ---- dracut-044.orig/modules.d/40network/ifup.sh -+++ dracut-044/modules.d/40network/ifup.sh +diff --git a/modules.d/40network/ifup.sh b/modules.d/40network/ifup.sh +index 109fb4b..31a04bf 100755 +--- a/modules.d/40network/ifup.sh ++++ b/modules.d/40network/ifup.sh @@ -373,27 +373,20 @@ for p in $(getargs ip=); do do_static ;; esac @@ -59,3 +59,6 @@ exit 0 done +-- +2.6.6 + ++++++ 0089-40network-create-var-lib-wicked-in-ifup.sh.patch ++++++ --- /var/tmp/diff_new_pack.mCgnr7/_old 2016-06-13 21:54:43.000000000 +0200 +++ /var/tmp/diff_new_pack.mCgnr7/_new 2016-06-13 21:54:43.000000000 +0200 @@ -1,4 +1,4 @@ -From af384e51a1dff36b5554b05d2b940d0089c84000 Mon Sep 17 00:00:00 2001 +From 16a940a8fb1fe6697474dc4abb1ce5b5ee281068 Mon Sep 17 00:00:00 2001 From: Hannes Reinecke <h...@suse.de> Date: Tue, 1 Jul 2014 08:15:00 +0200 Subject: 40network: create /var/lib/wicked in ifup.sh @@ -13,10 +13,10 @@ modules.d/40network/ifup.sh | 2 ++ 1 file changed, 2 insertions(+) -Index: dracut-042/modules.d/40network/ifup.sh -=================================================================== ---- dracut-042.orig/modules.d/40network/ifup.sh 2015-06-24 18:02:06.605215110 +0200 -+++ dracut-042/modules.d/40network/ifup.sh 2015-06-24 18:02:12.961576972 +0200 +diff --git a/modules.d/40network/ifup.sh b/modules.d/40network/ifup.sh +index 347c7f7..c7279df 100755 +--- a/modules.d/40network/ifup.sh ++++ b/modules.d/40network/ifup.sh @@ -18,6 +18,8 @@ netif=$1 use_bridge='false' use_vlan='false' @@ -26,3 +26,6 @@ # enslave this interface to bond? for i in /tmp/bond.*.info; do [ -e "$i" ] || continue +-- +2.6.6 + ++++++ 0160-s390-update_active_devices_initrd.patch ++++++ From: Thomas Blume <thomas.bl...@suse.com> Subject: 91zipl: Update active_devices.txt from /boot/zipl device References: bsc#939101 Signed-off-by: Thomas Blume <thomas.bl...@suse.com> Index: dracut-044/modules.d/91zipl/install_zipl_cmdline.sh =================================================================== --- dracut-044.orig/modules.d/91zipl/install_zipl_cmdline.sh 2016-04-12 15:48:34.620382686 +0200 +++ dracut-044/modules.d/91zipl/install_zipl_cmdline.sh 2016-04-12 15:48:35.140412123 +0200 @@ -22,6 +22,13 @@ if [ -f ${MNT}/dracut-cmdline.conf ] ; t cp ${MNT}/dracut-cmdline.conf /etc/cmdline.d/99zipl.conf fi +if [ -f ${MNT}/active_devices.txt ] ; then + while read dev etc ; do + [ "$dev" = "#" -o "$dev" = "" ] && continue; + cio_ignore -r $dev + done < ${MNT}/active_devices.txt +fi + umount ${MNT} if [ -f /etc/cmdline.d/99zipl.conf ] ; then ++++++ 0161-95zfcp_rules-simplified-rd.zfcp-commandline-for-NPIV.patch ++++++ >From 61d345654fbdd895a406a5a7517f01a7c984a7ed Mon Sep 17 00:00:00 2001 From: Hannes Reinecke <h...@suse.de> Date: Thu, 10 Mar 2016 15:45:43 +0100 Subject: [PATCH] 95zfcp_rules: simplified rd.zfcp commandline for NPIV When NPIV is enabled and the allow_lun_scan parameter is set to 'Y' the HBA will initiate a LUN scan automatically, so there is no need to specify the WWPN and LUN number manually. References: bsc#964456 Signed-off-by: Hannes Reinecke <h...@suse.com> --- dracut.cmdline.7.asc | 9 ++++++++- modules.d/95zfcp_rules/module-setup.sh | 23 +++++++++++++++++++---- modules.d/95zfcp_rules/parse-zfcp.sh | 1 + 3 files changed, 28 insertions(+), 5 deletions(-) Index: dracut-044/dracut.cmdline.7.asc =================================================================== --- dracut-044.orig/dracut.cmdline.7.asc 2016-04-12 15:48:42.072804543 +0200 +++ dracut-044/dracut.cmdline.7.asc 2016-04-12 15:48:46.869076048 +0200 @@ -771,12 +771,19 @@ DASD ZFCP ~~~~ **rd.zfcp=**__<zfcp adaptor device bus ID>__,__<WWPN>__,__<FCPLUN>__:: - rd.zfcp can be specified multiple times on the kernel command line. + rd.zfcp can be specified multiple times on the kernel command + line. + +**rd.zfcp=**__<zfcp adaptor device bus ID>__:: + If NPIV is enabled and the 'allow_lun_scan' parameter to the zfcp + module is set to 'Y' then the zfcp adaptor will be initiating a + scan internally and the <WWPN> and <FCPLUN> parameters can be omitted. + [listing] .Example -- rd.zfcp=0.0.4000,0x5005076300C213e9,0x5022000000000000 +rd.zfcp=0.0.4000 -- **rd.zfcp.conf=0**:: Index: dracut-044/modules.d/95zfcp_rules/module-setup.sh =================================================================== --- dracut-044.orig/modules.d/95zfcp_rules/module-setup.sh 2016-04-12 15:48:42.072804543 +0200 +++ dracut-044/modules.d/95zfcp_rules/module-setup.sh 2016-04-12 15:48:46.869076048 +0200 @@ -5,15 +5,30 @@ cmdline() { is_zfcp() { local _dev=$1 local _devpath=$(cd -P /sys/dev/block/$_dev ; echo $PWD) - local _sdev _lun _wwpn _ccw + local _sdev _scsiid _hostno _lun _wwpn _ccw _port_type + local _allow_lun_scan _is_npiv + _allow_lun_scan=$(cat /sys/module/zfcp/parameters/allow_lun_scan) [ "${_devpath#*/sd}" == "$_devpath" ] && return 1 _sdev="${_devpath%%/block/*}" [ -e ${_sdev}/fcp_lun ] || return 1 - _lun=$(cat ${_sdev}/fcp_lun) - _wwpn=$(cat ${_sdev}/wwpn) + _scsiid="${_sdev##*/}" + _hostno="${_scsiid%%:*}" + [ -d /sys/class/fc_host/host${_hostno} ] || return 1 + _port_type=$(cat /sys/class/fc_host/host${_hostno}/port_type) + case "$_port_type" in + NPIV*) + _is_npiv=1 + ;; + esac _ccw=$(cat ${_sdev}/hba_id) - echo "rd.zfcp=${_ccw},${_wwpn},${_lun}" + if [ "$_is_npiv" ] && [ "$_allow_lun_scan" = "Y" ] ; then + echo "rd.zfcp=${_ccw}" + else + _lun=$(cat ${_sdev}/fcp_lun) + _wwpn=$(cat ${_sdev}/wwpn) + echo "rd.zfcp=${_ccw},${_wwpn},${_lun}" + fi return 0 } [[ $hostonly ]] || [[ $mount_needs ]] && { Index: dracut-044/modules.d/95zfcp_rules/parse-zfcp.sh =================================================================== --- dracut-044.orig/modules.d/95zfcp_rules/parse-zfcp.sh 2016-04-12 15:48:42.072804543 +0200 +++ dracut-044/modules.d/95zfcp_rules/parse-zfcp.sh 2016-04-12 15:48:46.869076048 +0200 @@ -31,6 +31,7 @@ ACTION=="add", SUBSYSTEM=="drivers", KER ACTION=="add", ENV{COLLECT_$ccw}=="0", ATTR{[ccw/$ccw]online}="1" EOF fi + [ -z "$wwpn" -o -z "$lun" ] && return m=$(sed -n "/.*${wwpn}.*${lun}.*/p" $_rule) if [ -z "$m" ] ; then cat >> $_rule <<EOF ++++++ 0170-iscsi-skip-ibft-invalid-dhcp.patch ++++++ Index: dracut-044/modules.d/40network/net-lib.sh =================================================================== --- dracut-044.orig/modules.d/40network/net-lib.sh 2016-04-11 17:44:20.892837133 +0200 +++ dracut-044/modules.d/40network/net-lib.sh 2016-04-11 17:44:21.292859774 +0200 @@ -287,7 +287,7 @@ ibft_to_cmdline() { ;; esac fi - if [ -n "$dhcp" ] || [ "$origin" -eq 3 ]; then + if [ -n "$dhcp" -a "$dhcp" != "0.0.0.0" ] || [ -z "$dhcp" -a "$origin" -eq 3 ]; then if [ "$family" = "ipv6" ] ; then echo "ip=$dev:dhcp6" else ++++++ 0188-95dasd_rules-Install-collect-udev-helper-binary.patch ++++++ From: Thomas Renninger <tr...@suse.com> Date: Mon, 3 Aug 2015 14:07:59 +0200 Subject: 95dasd_rules: Install 'collect' udev helper binary Install the 'collect' udev helper binary for s390-specific rules. References: bsc#938867 Signed-off-by: Thomas Renninger <tr...@suse.com> --- modules.d/95dasd_rules/module-setup.sh | 1 + 1 file changed, 1 insertion(+) Index: dracut-044/modules.d/95dasd_rules/module-setup.sh =================================================================== --- dracut-044.orig/modules.d/95dasd_rules/module-setup.sh 2016-04-25 15:02:50.532329644 +0200 +++ dracut-044/modules.d/95dasd_rules/module-setup.sh 2016-04-25 15:02:52.384434310 +0200 @@ -45,6 +45,7 @@ depends() { # called by dracut install() { + inst_multiple /usr/lib/udev/collect inst_hook cmdline 30 "$moddir/parse-dasd.sh" if [[ $hostonly_cmdline == "yes" ]] ; then local _dasd=$(cmdline) ++++++ 0190-replace-iscsistart-with-systemd-service-files.patch ++++++ >From c426dc773fe654aed309375e20e398e9299ca34e Mon Sep 17 00:00:00 2001 From: Thomas Blume <thomas.bl...@suse.com> Date: Mon, 19 Oct 2015 09:14:53 +0200 Subject: Replace iscsistart with iscsiadm References: FATE#319024 iscsistart allows for a single connection only, and offers no means or terminating or re-establishing another one. So replace iscsistart with iscsiadm to allow several connection for multipath booting and also to ease maintenance in case of error. Signed-off-by: Thomas Blume <thomas.bl...@suse.com> --- modules.d/95iscsi/iscsiroot.sh | 48 ++++++++++++++++++++++++------------ modules.d/95iscsi/module-setup.sh | 19 ++++++++++++-- modules.d/95iscsi/parse-iscsiroot.sh | 2 +- 3 files changed, 50 insertions(+), 19 deletions(-) Index: dracut-044/modules.d/95iscsi/iscsiroot.sh =================================================================== --- dracut-044.orig/modules.d/95iscsi/iscsiroot.sh 2016-04-18 17:43:51.198589298 +0200 +++ dracut-044/modules.d/95iscsi/iscsiroot.sh 2016-04-18 17:53:11.962323970 +0200 @@ -43,17 +43,13 @@ fi handle_firmware() { - if ! iscsistart -f; then - warn "iscistart: Could not get list of targets from firmware." + if ! iscsiadm -m fw; then + warn "iscsiadm: Could not get list of targets from firmware." return 1 fi - for p in $(getargs rd.iscsi.param -d iscsi_param); do - iscsi_param="$iscsi_param --param $p" - done - - if ! iscsistart -b $iscsi_param; then - warn "'iscsistart -b $iscsi_param' failed with return code $?" + if ! iscsiadm -m fw -l; then + warn "iscsiadm: Log-in to iscsi target failed" fi echo 'started' > "/tmp/iscsistarted-iscsi:" @@ -77,7 +73,7 @@ handle_netroot() # override conf settings by command line options arg=$(getarg rd.iscsi.initiator -d iscsi_initiator=) [ -n "$arg" ] && iscsi_initiator=$arg - arg=$(getarg rd.iscsi.target.name -d iscsi_target_name=) + arg=$(getargs rd.iscsi.target.name -d iscsi_target_name=) [ -n "$arg" ] && iscsi_target_name=$arg arg=$(getarg rd.iscsi.target.ip -d iscsi_target_ip) [ -n "$arg" ] && iscsi_target_ip=$arg @@ -94,7 +90,7 @@ handle_netroot() arg=$(getarg rd.iscsi.in.password -d iscsi_in_password=) [ -n "$arg" ] && iscsi_in_password=$arg for p in $(getargs rd.iscsi.param -d iscsi_param); do - iscsi_param="$iscsi_param --param $p" + iscsi_param="$iscsi_param $p" done parse_iscsi_root "$1" || return 1 @@ -182,45 +178,37 @@ handle_netroot() echo "iscsi_lun=$iscsi_lun . /bin/mount-lun.sh " > $hookdir/mount/01-$$-iscsi.sh fi - if [ -n "$DRACUT_SYSTEMD" ] && command -v systemd-run >/dev/null 2>&1; then - netroot_enc=$(systemd-escape "iscsistart_${1}") - status=$(systemctl is-active "$netroot_enc" 2>/dev/null) - is_active=$? - if [ $is_active -ne 0 ]; then - if [ "$status" != "activating" ] && ! systemctl is-failed "$netroot_enc" >/dev/null 2>&1; then - systemd-run --no-block --service-type=oneshot --remain-after-exit --quiet \ - --description="Login iSCSI Target $iscsi_target_name" \ - --unit="$netroot_enc" -- \ - $(command -v iscsistart) \ - -i "$iscsi_initiator" -t "$iscsi_target_name" \ - -g "$iscsi_target_group" -a "$iscsi_target_ip" \ - -p "$iscsi_target_port" \ - ${iscsi_username:+-u "$iscsi_username"} \ - ${iscsi_password:+-w "$iscsi_password"} \ - ${iscsi_in_username:+-U "$iscsi_in_username"} \ - ${iscsi_in_password:+-W "$iscsi_in_password"} \ - ${iscsi_iface_name:+--param "iface.iscsi_ifacename=$iscsi_iface_name"} \ - ${iscsi_netdev_name:+--param "iface.net_ifacename=$iscsi_netdev_name"} \ - ${iscsi_param} >/dev/null 2>&1 \ - && { > $hookdir/initqueue/work ; } + ### ToDo: Upstream calls systemd-run - Shall we, do we have to port this? + + if iscsiadm -m node; then + targets=$(iscsiadm -m node | sed 's/^.*iqn/iqn/') + else + targets=$(iscsiadm -m discovery -t st -p $iscsi_target_ip:${iscsi_target_port:+$iscsi_target_port} | sed 's/^.*iqn/iqn/') + [ -z "$targets" ] && echo "Target discovery to $iscsi_target_ip:${iscsi_target_port:+$iscsi_target_port} failed with status $?" && exit 1 + fi + + for target in $iscsi_target_name; do + if [[ "$targets" =~ "$target" ]]; then + if [ -n "$iscsi_iface_name" ]; then + $(iscsiadm -m iface -I $iscsi_iface_name --op=new) + [ -n "$iscsi_initiator" ] && $(iscsiadm -m iface -I $iscsi_iface_name --op=update --name=iface.initiatorname --value=$iscsi_initiator) + [ -n "$iscsi_netdev_name" ] && $(iscsiadm -m iface -I $iscsi_iface_name --op=update --name=iface.net_ifacename --value=$iscsi_netdev_name) + COMMAND="iscsiadm -m node -T $target -p $iscsi_target_ip${iscsi_target_port:+:$iscsi_target_port} -I $iscsi_iface_name --op=update" else - systemctl --no-block restart "$netroot_enc" >/dev/null 2>&1 \ - && { > $hookdir/initqueue/work ; } + COMMAND="iscsiadm -m node -T $target -p $iscsi_target_ip${iscsi_target_port:+:$iscsi_target_port} --op=update" fi + $($COMMAND --name=node.startup --value=onboot) + [ -n "$iscsi_username" ] && $($COMMAND --name=node.session.auth.username --value=$iscsi_username) + [ -n "$iscsi_password" ] && $($COMMAND --name=node.session.auth.password --value=$iscsi_password) + [ -n "$iscsi_in_username" ] && $($COMMAND --name=node.session.auth.username_in --value=$iscsi_in_username) + [ -n "$iscsi_in_password" ] && $($COMMAND --name=node.session.auth.password_in --value=$iscsi_in_password) + [ -n "$iscsi_param" ] && $($COMMAND --name=${iscsi_param%=*} --value=${iscsi_param#*=} fi - else - iscsistart -i "$iscsi_initiator" -t "$iscsi_target_name" \ - -g "$iscsi_target_group" -a "$iscsi_target_ip" \ - -p "$iscsi_target_port" \ - ${iscsi_username:+-u "$iscsi_username"} \ - ${iscsi_password:+-w "$iscsi_password"} \ - ${iscsi_in_username:+-U "$iscsi_in_username"} \ - ${iscsi_in_password:+-W "$iscsi_in_password"} \ - ${iscsi_iface_name:+--param "iface.iscsi_ifacename=$iscsi_iface_name"} \ - ${iscsi_netdev_name:+--param "iface.net_ifacename=$iscsi_netdev_name"} \ - ${iscsi_param} \ - && { > $hookdir/initqueue/work ; } - fi + done + + iscsiadm -m node -L onboot || : + > $hookdir/initqueue/work + netroot_enc=$(str_replace "$1" '/' '\2f') echo 'started' > "/tmp/iscsistarted-iscsi:${netroot_enc}" return 0 Index: dracut-044/modules.d/95iscsi/module-setup.sh =================================================================== --- dracut-044.orig/modules.d/95iscsi/module-setup.sh 2016-04-18 17:43:51.198589298 +0200 +++ dracut-044/modules.d/95iscsi/module-setup.sh 2016-04-18 17:53:11.962323970 +0200 @@ -4,7 +4,7 @@ check() { local _rootdev # If our prerequisites are not met, fail anyways. - require_binaries iscsistart hostname iscsi-iname || return 1 + require_binaries hostname iscsi-iname iscsiadm iscsid || return 1 # If hostonly was requested, fail the check if we are not actually # booting from root. @@ -211,9 +211,22 @@ cmdline() { # called by dracut install() { - inst_multiple umount iscsistart hostname iscsi-iname inst_multiple -o iscsiuio inst_libdir_file 'libgcc_s.so*' + inst_multiple umount hostname iscsi-iname iscsiadm iscsid + + ln -sf $systemdsystemunitdir/iscsid.socket $systemdsystemunitdir/sockets.target.wants/iscsid.socket + ln -sf $systemdsystemunitdir/iscsiuio.socket $systemdsystemunitdir/sockets.target.wants/iscsiuio.socket + + inst_multiple -o \ + $systemdsystemunitdir/iscsid.socket \ + $systemdsystemunitdir/iscsid.service \ + $systemdsystemunitdir/iscsiuio.service \ + $systemdsystemunitdir/iscsiuio.socket \ + $systemdsystemunitdir/sockets.target.wants/iscsid.socket \ + $systemdsystemunitdir/sockets.target.wants/iscsiuio.socket + + [[ -d /etc/iscsi ]] && inst_dir $(/usr/bin/find /etc/iscsi) # Detect iBFT and perform mandatory steps if [[ $hostonly_cmdline == "yes" ]] ; then @@ -221,6 +234,8 @@ install() { [[ $_iscsiconf ]] && printf "%s\n" "$_iscsiconf" >> "${initdir}/etc/cmdline.d/95iscsi.conf" fi + echo 'rd.neednet=1' >> "${initdir}/etc/cmdline.d/95iscsi.conf" + inst_hook cmdline 90 "$moddir/parse-iscsiroot.sh" inst_hook cleanup 90 "$moddir/cleanup-iscsi.sh" inst "$moddir/iscsiroot.sh" "/sbin/iscsiroot" ++++++ 0191-static_network_setup_return_zero.patch ++++++ From: Thomas Blume <thomas.bl...@suse.com> Subject: Unset gateway variable if emtpy If the gateway variable is empty (ie '::' for IPv6 or '0.0.0.0' for IPv4) it should be unset. References: bsc#919179 Signed-off-by: Thomas Blume <thomas.bl...@suse.com> Index: dracut-044/modules.d/40network/ifup.sh =================================================================== --- dracut-044.orig/modules.d/40network/ifup.sh 2016-04-11 17:41:48.628218989 +0200 +++ dracut-044/modules.d/40network/ifup.sh 2016-04-11 17:43:45.250819391 +0200 @@ -327,6 +327,7 @@ if strglobin $ip '*:*:*'; then # note no ip addr flush for ipv6 ip addr add $ip/$prefix ${srv:+peer $srv} dev $netif wait_for_ipv6_dad $netif + [ "$gw" = "::" ] && gw="" else if ! arping -f -q -D -c 2 -I $netif $ip; then warn "Duplicate address detected for $ip for interface $netif." @@ -335,6 +336,7 @@ if strglobin $ip '*:*:*'; then # Assume /24 prefix for IPv4 [ -z "$prefix" ] && prefix=24 ip addr add $ip/$prefix ${srv:+peer $srv} brd + dev $netif + [ "$gw" = "0.0.0.0" ] && gw="" fi [ -n "$gw" ] && echo ip route replace default via $gw dev $netif > /tmp/net.$netif.gw @@ -352,6 +354,9 @@ if strglobin $ip '*:*:*'; then done [ -n "$hostname" ] && echo "echo $hostname > /proc/sys/kernel/hostname" > /tmp/net.$netif.hostname + + [ $? -ne 0 ] && info "Static network setup returned $?" + return 0 } # loopback is always handled the same way ++++++ 0192-iscsi_set_boot_protocol_from_ifcfg.patch ++++++ From: Thomas Blume <thomas.bl...@suse.com> Subject: set boot protocol for iscsi from ifcfg file References: bsc#919179 Signed-off-by: Thomas Blume <thomas.bl...@suse.com> Index: dracut-044/modules.d/95iscsi/module-setup.sh =================================================================== --- dracut-044.orig/modules.d/95iscsi/module-setup.sh 2016-04-14 14:12:39.693392427 +0200 +++ dracut-044/modules.d/95iscsi/module-setup.sh 2016-04-14 14:53:00.630227712 +0200 @@ -104,7 +104,14 @@ install_iscsiroot() { [ -z "$iscsi_address" ] && return local_address=$(ip -o route get to $iscsi_address | sed -n 's/.*src \([0-9a-f.:]*\).*/\1/p') ifname=$(ip -o route get to $iscsi_address | sed -n 's/.*dev \([^ ]*\).*/\1/p') - printf 'ip=%s:static ' ${ifname} + + #follow ifcfg settings for boot protocol + bootproto=$(sed -n "/BOOTPROTO/s/BOOTPROTO='\([[:alpha:]]*6\?\)4\?'/\1/p" /etc/sysconfig/network/ifcfg-$ifname) + if [ $bootproto ]; then + printf 'ip=%s:%s ' ${ifname} ${bootproto} + else + printf 'ip=%s:static ' ${ifname} + fi if [ -e /sys/class/net/$ifname/address ] ; then ifmac=$(cat /sys/class/net/$ifname/address) ++++++ 0193-95iscsi-Set-number-of-login-retries.patch ++++++ From: Thomas Blume <thomas.bl...@suse.com> Date: Mon, 19 Oct 2015 09:39:41 +0200 Subject: Set number of login retries Allow to set the number of login retries from the kernel commandline. References: bsc#919179 Signed-off-by: Thomas Blume <thomas.bl...@suse.com> --- modules.d/95iscsi/iscsiroot.sh | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) Index: dracut-044/modules.d/95iscsi/iscsiroot.sh =================================================================== --- dracut-044.orig/modules.d/95iscsi/iscsiroot.sh 2016-04-14 14:52:44.685325362 +0200 +++ dracut-044/modules.d/95iscsi/iscsiroot.sh 2016-04-14 14:57:07.628188324 +0200 @@ -41,6 +41,14 @@ if [ -z "${DRACUT_SYSTEMD}" ] && [ -e /s > /tmp/iscsiuio-started fi +#set value for initial login retry +set_login_retries() { + local default retries + default=2 + retries=$(getarg rd.iscsilogin.retries) + return ${retries:-$default} +} + handle_firmware() { if ! iscsiadm -m fw; then @@ -67,7 +75,7 @@ handle_netroot() local iscsi_username iscsi_password local iscsi_in_username iscsi_in_password local iscsi_iface_name iscsi_netdev_name - local iscsi_param + local iscsi_param param local p # override conf settings by command line options @@ -100,6 +108,15 @@ handle_netroot() ip route get "$iscsi_target_ip" >/dev/null 2>&1 || return 0 fi + #limit iscsistart login retries + if [[ ! "$iscsi_param" =~ "node.session.initial_login_retry_max" ]]; then + set_login_retries + retries=$? + if [ $retries -gt 0 ]; then + iscsi_param="${iscsi_param% } node.session.initial_login_retry_max=$retries" + fi + fi + # XXX is this needed? getarg ro && iscsirw=ro getarg rw && iscsirw=rw @@ -202,7 +219,7 @@ handle_netroot() [ -n "$iscsi_password" ] && $($COMMAND --name=node.session.auth.password --value=$iscsi_password) [ -n "$iscsi_in_username" ] && $($COMMAND --name=node.session.auth.username_in --value=$iscsi_in_username) [ -n "$iscsi_in_password" ] && $($COMMAND --name=node.session.auth.password_in --value=$iscsi_in_password) - [ -n "$iscsi_param" ] && $($COMMAND --name=${iscsi_param%=*} --value=${iscsi_param#*=} + [ -n "$iscsi_param" ] && for param in $iscsi_param; do $($COMMAND --name=${param%=*} --value=${param#*=}); done fi done ++++++ 0196-ibft-wait-for-session-on-all-paths.patch ++++++ Index: dracut-044/modules.d/95iscsi/iscsiroot.sh =================================================================== --- dracut-044.orig/modules.d/95iscsi/iscsiroot.sh 2016-04-14 15:20:04.089991822 +0200 +++ dracut-044/modules.d/95iscsi/iscsiroot.sh 2016-04-14 15:22:50.683407266 +0200 @@ -51,11 +51,23 @@ set_login_retries() { handle_firmware() { + local ifaces retry + if ! iscsiadm -m fw; then warn "iscsiadm: Could not get list of targets from firmware." return 1 fi + ifaces=( $(echo /sys/firmware/ibft/ethernet*) ) + [ -f /tmp/session-retry ] || echo 1 > /tmp/session-retry + retry=$(cat /tmp/session-retry) + + if [ $retry -lt ${#ifaces[*]} ]; then + let retry++ + echo $retry > /tmp/session-retry + return 1 + fi + if ! iscsiadm -m fw -l; then warn "iscsiadm: Log-in to iscsi target failed" fi ++++++ 0197-95iscsi-Do-not-require-network-for-qla4xxx-flash-ses.patch ++++++ >From 4287dca195e2435c7ab20265db6225f97b576fd3 Mon Sep 17 00:00:00 2001 From: Hannes Reinecke <h...@suse.de> Date: Mon, 19 Oct 2015 14:02:19 +0200 Subject: 95iscsi: Do not require network for qla4xxx flash sessions qla4xxx can store boot sessions in flash, which will then not show up with iBFT. These boot sesssions will be maintained by the driver; no specific network configuration is required here. So suppress network setup for these cases. References: bsc#935320 Signed-off-by: Hannes Reinecke <h...@suse.de> --- modules.d/95iscsi/module-setup.sh | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/modules.d/95iscsi/module-setup.sh b/modules.d/95iscsi/module-setup.sh index 6dca212..797d4e1 100755 --- a/modules.d/95iscsi/module-setup.sh +++ b/modules.d/95iscsi/module-setup.sh @@ -70,7 +70,7 @@ install_ibft() { install_iscsiroot() { local devpath=$1 - local scsi_path iscsi_lun session c d conn + local scsi_path iscsi_lun session c d conn host flash local iscsi_session iscsi_address iscsi_port iscsi_targetname iscsi_tpgt scsi_path=${devpath%%/block*} @@ -81,6 +81,19 @@ install_iscsiroot() { [ "$session" = "$devpath" ] && return 1 iscsi_session=${session##*/} [ "$iscsi_session" = "$session" ] && return 1 + host=${session%%/session*} + [ "$host" = "$session" ] && return 1 + iscsi_host=${host##*/} + + for flash in ${host}/flashnode_sess-* ; do + is_boot=$(cat $flash/is_boot_target) + if [ $is_boot -eq 1 ] ; then + # qla4xxx flashnode session; skip iBFT discovery + iscsi_initiator=$(cat /sys/class/iscsi_host/${iscsi_host}/initiatorname) + echo "rd.iscsi.initiator=${iscsi_initiator}" + return; + fi + done for d in ${session}/* ; do case $d in @@ -135,6 +148,7 @@ install_iscsiroot() { # can sort out rd.iscsi.initiator= duplicates echo "rd.iscsi.initiator=${iscsi_initiator}" echo "netroot=iscsi:${iscsi_address}::${iscsi_port}:${iscsi_lun}:${iscsi_targetname}" + echo "rd.neednet=1" fi return 0 } @@ -241,8 +255,6 @@ install() { [[ $_iscsiconf ]] && printf "%s\n" "$_iscsiconf" >> "${initdir}/etc/cmdline.d/95iscsi.conf" fi - echo 'rd.neednet=1' >> "${initdir}/etc/cmdline.d/95iscsi.conf" - inst_hook cmdline 90 "$moddir/parse-iscsiroot.sh" inst_hook cleanup 90 "$moddir/cleanup-iscsi.sh" inst "$moddir/iscsiroot.sh" "/sbin/iscsiroot" -- 2.6.6 ++++++ 0198-95iscsi-set-rd.iscsi.firmware-for-qla4xxx-sessions.patch ++++++ >From c56c855754914283bb930ef1a2b2dd5e8d5a6f25 Mon Sep 17 00:00:00 2001 From: Hannes Reinecke <h...@suse.de> Date: Tue, 20 Oct 2015 07:59:43 +0200 Subject: 95iscsi: set 'rd.iscsi.firmware' for qla4xxx sessions The qla4xxx driver can run with or without open-iscsi support, depending on the setting of the 'ql4xdisablesysfsboot' module parameter. When the parameter is set to '0', dracut needs to call 'iscsiadm -m fw' to trigger iSCSI login, so we need to set the 'rd.iscsi.firmware' dracut variable. But this will then fail if the parameter is set to '1', as in these cases the list of firmware targets is empty. To cover both scenarios this patch reshuffles 'handle_firmware' in iscsiroot.sh to continue if iscsiadm -m fw fails but iscsi sessions are present. References: bsc#951003 Signed-off-by: Hannes Reinecke <h...@suse.de> --- modules.d/95iscsi/iscsiroot.sh | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/modules.d/95iscsi/iscsiroot.sh b/modules.d/95iscsi/iscsiroot.sh index 6ef6276..77755fb 100755 --- a/modules.d/95iscsi/iscsiroot.sh +++ b/modules.d/95iscsi/iscsiroot.sh @@ -53,29 +53,34 @@ handle_firmware() { local ifaces retry + # Depending on the 'ql4xdisablesysfsboot' qla4xxx + # will be autostarting sessions without presenting + # them via the firmware interface. + # In these cases 'iscsiadm -m fw' will fail, but + # the iSCSI sessions will still be present. if ! iscsiadm -m fw; then warn "iscsiadm: Could not get list of targets from firmware." - return 1 - fi - - ifaces=( $(echo /sys/firmware/ibft/ethernet*) ) - [ -f /tmp/session-retry ] || echo 1 > /tmp/session-retry - retry=$(cat /tmp/session-retry) - - if [ $retry -lt ${#ifaces[*]} ]; then - let retry++ - echo $retry > /tmp/session-retry - return 1 - fi + else + ifaces=( $(echo /sys/firmware/ibft/ethernet*) ) + [ -f /tmp/session-retry ] || echo 1 > /tmp/session-retry + retry=$(cat /tmp/session-retry) + + if [ $retry -lt ${#ifaces[*]} ]; then + let retry++ + echo $retry > /tmp/session-retry + return 1 + fi - if ! iscsiadm -m fw -l; then - warn "iscsiadm: Log-in to iscsi target failed" + if ! iscsiadm -m fw -l; then + warn "iscsiadm: Log-in to iscsi target failed" + else + need_shutdown + fi fi - + [ -d /sys/class/iscsi_session ] || return 1 echo 'started' > "/tmp/iscsistarted-iscsi:" echo 'started' > "/tmp/iscsistarted-firmware" - need_shutdown return 0 } -- 2.6.6 ++++++ 0203-no-fail-builtin-module.patch ++++++ --- /var/tmp/diff_new_pack.mCgnr7/_old 2016-06-13 21:54:43.000000000 +0200 +++ /var/tmp/diff_new_pack.mCgnr7/_new 2016-06-13 21:54:43.000000000 +0200 @@ -12,9 +12,9 @@ Index: dracut-044/dracut-init.sh =================================================================== ---- dracut-044.orig/dracut-init.sh -+++ dracut-044/dracut-init.sh -@@ -1122,6 +1122,11 @@ instmods() { +--- dracut-044.orig/dracut-init.sh 2016-04-14 14:12:39.421377052 +0200 ++++ dracut-044/dracut-init.sh 2016-04-14 14:58:46.285764636 +0200 +@@ -1129,6 +1129,11 @@ instmods() { return 0 fi ++++++ 0211-fix_multipath_check_hostonly.patch ++++++ --- /var/tmp/diff_new_pack.mCgnr7/_old 2016-06-13 21:54:43.000000000 +0200 +++ /var/tmp/diff_new_pack.mCgnr7/_new 2016-06-13 21:54:43.000000000 +0200 @@ -11,16 +11,18 @@ Index: dracut-044/modules.d/90multipath/module-setup.sh =================================================================== ---- dracut-044.orig/modules.d/90multipath/module-setup.sh -+++ dracut-044/modules.d/90multipath/module-setup.sh -@@ -20,13 +20,14 @@ majmin_to_mpath_dev() { +--- dracut-044.orig/modules.d/90multipath/module-setup.sh 2016-04-19 13:58:59.445320244 +0200 ++++ dracut-044/modules.d/90multipath/module-setup.sh 2016-04-19 13:59:41.467698870 +0200 +@@ -3,8 +3,6 @@ # called by dracut check() { local _rootdev - # if there's no multipath binary, no go. - require_binaries multipath || return 1 - [[ $hostonly ]] || [[ $mount_needs ]] && { + is_mpath() { + local _dev=$1 +@@ -17,6 +15,9 @@ check() { for_each_host_dev_and_slaves is_mpath || return 255 } ++++++ 0212-fcoe_reorder_init_path.patch ++++++ From: Johannes Thumshirn <jthumsh...@suse.com> References: bsc#982588 --- a/modules.d/95fcoe/fcoe-up.sh +++ b/modules.d/95fcoe/fcoe-up.sh @@ -45,7 +45,16 @@ write_fcoemon_cfg() { echo MODE=\"fabric\" >> /etc/fcoe/cfg-$netif } -if [ "$dcb" = "dcb" ]; then +if [ "$netdriver" = "bnx2x" ]; then + # If driver is bnx2x, do not use /sys/module/fcoe/parameters/create but fipvlan + modprobe 8021q + udevadm settle --timeout=30 + # Sleep for 3 s to allow dcb negotiation + sleep 3 + write_fcoemon_cfg + fcoemon --syslog=yes + fipvlan -c -s "$netif" +elif [ "$dcb" = "dcb" ]; then # wait for lldpad to be ready i=0 while [ $i -lt 60 ]; do @@ -79,18 +88,11 @@ if [ "$dcb" = "dcb" ]; then sleep 1 write_fcoemon_cfg - fcoemon --syslog -elif [ "$netdriver" = "bnx2x" ]; then - # If driver is bnx2x, do not use /sys/module/fcoe/parameters/create but fipvlan - modprobe 8021q - udevadm settle --timeout=30 - # Sleep for 3 s to allow dcb negotiation - sleep 3 - fipvlan "$netif" -c -s + fcoemon --syslog=yes else vlan="no" write_fcoemon_cfg - fcoemon --syslog + fcoemon --syslog=yes fi need_shutdown ++++++ 0302-Revert-90multipath-add-hostonly-multipath.conf-in-ca.patch ++++++ >From c9f18fcc4b7a4b31cc1f68d9e5e1c2d6625871ca Mon Sep 17 00:00:00 2001 From: Dave Young <dyo...@redhat.com> Date: Wed, 4 May 2016 12:46:12 +0200 Subject: Revert '90multipath: add hostonly multipath.conf in case hostonly mode' Patch is incompatible with SUSE, which doesn't have mpathconf. Signed-off-by: Thomas Renninger <tr...@suse.de> --- modules.d/90multipath/module-setup.sh | 42 +++++++---------------------------- 1 file changed, 8 insertions(+), 34 deletions(-) diff --git a/modules.d/90multipath/module-setup.sh b/modules.d/90multipath/module-setup.sh index 831c99f..c2c85c4 100755 --- a/modules.d/90multipath/module-setup.sh +++ b/modules.d/90multipath/module-setup.sh @@ -1,28 +1,18 @@ #!/bin/bash -is_mpath() { - local _dev=$1 - [ -e /sys/dev/block/$_dev/dm/uuid ] || return 1 - [[ $(cat /sys/dev/block/$_dev/dm/uuid) =~ mpath- ]] && return 0 - return 1 -} - -majmin_to_mpath_dev() { - local _dev - for i in `ls -1 /dev/mapper/mpath*`; do - dev=$(get_maj_min $i) - if [ "$dev" = "$1" ]; then - echo $i - return - fi - done -} # called by dracut check() { local _rootdev # if there's no multipath binary, no go. require_binaries multipath || return 1 + is_mpath() { + local _dev=$1 + [ -e /sys/dev/block/$_dev/dm/uuid ] || return 1 + [[ $(cat /sys/dev/block/$_dev/dm/uuid) =~ mpath- ]] && return 0 + return 1 + } + [[ $hostonly ]] || [[ $mount_needs ]] && { for_each_host_dev_and_slaves is_mpath || return 255 } @@ -89,18 +79,7 @@ installkernel() { # called by dracut install() { - local _f _allow - add_hostonly_mpath_conf() { - is_mpath $1 && { - local _dev - - _dev=$(majmin_to_mpath_dev $1) - [ -z "$_dev" ] && return - strstr "$_allow" "$_dev" && return - _allow="$_allow --allow $_dev" - } - } - + local _f inst_multiple -o \ dmsetup \ kpartx \ @@ -114,11 +93,6 @@ install() { /etc/multipath.conf \ /etc/multipath/* - [[ $hostonly ]] && { - for_each_host_dev_and_slaves_all add_hostonly_mpath_conf - [ -n "$_allow" ] && mpathconf $_allow --outfile ${initdir}/etc/multipath.conf - } - inst $(command -v partx) /sbin/partx inst_libdir_file "libmultipath*" "multipath/*" -- 2.6.6 ++++++ 0402-driver-fail-summary.patch ++++++ --- /var/tmp/diff_new_pack.mCgnr7/_old 2016-06-13 21:54:43.000000000 +0200 +++ /var/tmp/diff_new_pack.mCgnr7/_new 2016-06-13 21:54:43.000000000 +0200 @@ -21,9 +21,9 @@ Index: dracut-044/dracut-init.sh =================================================================== ---- dracut-044.orig/dracut-init.sh -+++ dracut-044/dracut-init.sh -@@ -1077,14 +1077,16 @@ instmods() { +--- dracut-044.orig/dracut-init.sh 2016-04-11 18:19:59.333855978 +0200 ++++ dracut-044/dracut-init.sh 2016-04-11 18:19:59.585870239 +0200 +@@ -1084,14 +1084,16 @@ instmods() { [[ $no_kernel = yes ]] && return # called [sub]functions inherit _fderr local _fderr=9 @@ -41,7 +41,7 @@ _silent=yes shift fi -@@ -1166,7 +1168,7 @@ instmods() { +@@ -1173,7 +1175,7 @@ instmods() { while read _mod || [ -n "$_mod" ]; do inst1mod "${_mod%.ko*}" || { if [[ "$_check" == "yes" ]] && [[ "$_silent" == "no" ]]; then @@ -50,7 +50,7 @@ fi } done -@@ -1174,7 +1176,7 @@ instmods() { +@@ -1181,7 +1183,7 @@ instmods() { while (($# > 0)); do # filenames as arguments inst1mod ${1%.ko*} || { if [[ "$_check" == "yes" ]] && [[ "$_silent" == "no" ]]; then @@ -61,8 +61,8 @@ shift Index: dracut-044/dracut.sh =================================================================== ---- dracut-044.orig/dracut.sh -+++ dracut-044/dracut.sh +--- dracut-044.orig/dracut.sh 2016-04-11 18:19:59.429861411 +0200 ++++ dracut-044/dracut.sh 2016-04-11 18:19:59.593870691 +0200 @@ -390,6 +390,12 @@ verbosity_mod_l=0 unset kernel unset outfile ++++++ 0403-95lunmask-Add-module-to-handle-LUN-masking.patch ++++++ >From 0f353853241e002658a9870419a7930fc3414b18 Mon Sep 17 00:00:00 2001 From: Hannes Reinecke <h...@suse.de> Date: Wed, 11 Nov 2015 12:20:33 +0100 Subject: 95lunmask: Add module to handle LUN masking Using the module option 'scsi_mod.scan=manual' this implements LUN masking by selectively enable only those devices required for booting. References: bsc#954600,FATE#319786 Signed-off-by: Hannes Reinecke <h...@suse.de> --- modules.d/95lunmask/fc_transport_scan_lun.sh | 26 ++++++++++ modules.d/95lunmask/module-setup.sh | 70 +++++++++++++++++++++++++++ modules.d/95lunmask/parse-lunmask.sh | 40 +++++++++++++++ modules.d/95lunmask/sas_transport_scan_lun.sh | 26 ++++++++++ 4 files changed, 162 insertions(+) create mode 100644 modules.d/95lunmask/fc_transport_scan_lun.sh create mode 100644 modules.d/95lunmask/module-setup.sh create mode 100644 modules.d/95lunmask/parse-lunmask.sh create mode 100644 modules.d/95lunmask/sas_transport_scan_lun.sh diff --git a/modules.d/95lunmask/fc_transport_scan_lun.sh b/modules.d/95lunmask/fc_transport_scan_lun.sh new file mode 100644 index 0000000..d9f84a3 --- /dev/null +++ b/modules.d/95lunmask/fc_transport_scan_lun.sh @@ -0,0 +1,26 @@ +#!/bin/bash +# +# fc_transport_lun_scan +# +# Selectively enable individual LUNs behind an FC remote port +# +# ACTION=="add", SUBSYSTEM=="fc_transport", ATTR{port_name}=="wwpn", \ +# PROGRAM="fc_transport_lun_scan lun" +# + +[ -z $DEVPATH ] && exit 1 + +if [ -n "$1" ] ; then + LUN=$1 +else + LUN=- +fi +ID=${DEVPATH##*/rport-} +HOST=${ID%%:*} +CHANNEL=${ID%%-*} +CHANNEL=${CHANNEL#*:} +if [ -f /sys$DEVPATH/scsi_target_id ] ; then + TARGET=$(cat /sys$DEVPATH/scsi_target_id) +fi +[ -z "$TARGET" ] && exit 1 +echo $CHANNEL $TARGET $LUN > /sys/class/scsi_host/host$HOST/scan diff --git a/modules.d/95lunmask/module-setup.sh b/modules.d/95lunmask/module-setup.sh new file mode 100644 index 0000000..6afaed2 --- /dev/null +++ b/modules.d/95lunmask/module-setup.sh @@ -0,0 +1,70 @@ +#!/bin/bash +# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- +# ex: ts=8 sw=4 sts=4 et filetype=sh + +# called by dracut +cmdline() { + get_lunmask() { + local _dev=$1 + local _devpath=$(cd -P /sys/dev/block/$_dev ; echo $PWD) + local _sdev _lun _rport _end_device _classdev _wwpn _sas_address + + [ "${_devpath#*/sd}" == "$_devpath" ] && return 1 + _sdev="${_devpath%%/block/*}" + _lun="${_sdev##*:}" + # Check for FibreChannel + _rport="${_devpath##*/rport-}" + if [ "$_rport" != "$_devpath" ] ; then + _rport="${_rport%%/*}" + _classdev="/sys/class/fc_remote_ports/rport-${_rport}" + [ -d "$_classdev" ] || return 1 + _wwpn=$(cat ${_classdev}/port_name) + echo "rd.lunmask=fc,${_wwpn},${_lun}" + return 0 + fi + # Check for SAS + _end_device="${_devpath##*/end_device-}" + if [ "$_end_device" != "$_devpath" ] ; then + _end_device="${_end_device%%/*}" + _classdev="/sys/class/sas_device/end_device-${_end_device}" + [ -e "$_classdev" ] || return 1 + _sas_address=$(cat ${_classdev}/sas_address) + echo "rd.lunmask=sas,${_sas_address},${_lun}" + return 0 + fi + return 1 + } + [[ $hostonly ]] || [[ $mount_needs ]] && { + for_each_host_dev_and_slaves_all get_lunmask + } | sort | uniq +} + +# called by dracut +check() { + [[ $hostonly ]] || [[ $mount_needs ]] && { + [ -w /sys/module/scsi_mod/parameters/scan ] || return 255 + scan_type=$(cat /sys/module/scsi_mod/parameters/scan) + [ "$scan_type" = "manual" ] && return 0 + return 255 + } + return 0 +} + +# called by dracut +depends() { + return 0 +} + +# called by dracut +install() { + inst_script "$moddir/fc_transport_scan_lun.sh" /usr/lib/udev/fc_transport_scan_lun.sh + inst_script "$moddir/sas_transport_scan_lun.sh" /usr/lib/udev/sas_transport_scan_lun.sh + inst_hook cmdline 30 "$moddir/parse-lunmask.sh" + if [[ $hostonly_cmdline == "yes" ]] ; then + local _lunmask + + for _lunmask in $(cmdline) ; do + printf "%s\n" "$_lunmask" >> "${initdir}/etc/cmdline.d/95lunmask.conf" + done + fi +} diff --git a/modules.d/95lunmask/parse-lunmask.sh b/modules.d/95lunmask/parse-lunmask.sh new file mode 100644 index 0000000..6646876 --- /dev/null +++ b/modules.d/95lunmask/parse-lunmask.sh @@ -0,0 +1,40 @@ +#!/bin/sh +# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- +# ex: ts=8 sw=4 sts=4 et filetype=sh + +create_udev_rule() { + local transport=$1 + local tgtid=$2 + local lun=$3 + local _rule=/etc/udev/rules.d/51-${transport}-lunmask-${tgtid}.rules + local _cu_type _dev_type + + [ -e ${_rule} ] && return 0 + + if [ ! -f "$_rule" ] ; then + if [ "$transport" = "fc" ] ; then + cat > $_rule <<EOF +ACTION=="add", SUBSYSTEM=="fc_remote_ports", ATTR{port_name}=="$tgtid", PROGRAM="fc_transport_scan_lun.sh $lun" +EOF + elif [ "$transport" = "sas" ] ; then + cat > $_rule <<EOF +ACTION=="add", SUBSYSTEM=="sas_device", ATTR{sas_address}=="$tgtid", PROGRAM="sas_transport_scan_lun.sh $lun" +EOF + fi + fi +} + +for lunmask_arg in $(getargs rd.lunmask); do + ( + local OLDIFS="$IFS" + local IFS="," + set $lunmask_arg + IFS="$OLDIFS" + if [ -d /sys/module/scsi_mod ] ; then + echo -n "manual" > /sys/module/scsi_mod/parameters/scan + elif [ ! -f /etc/modprobe.d/95lunmask.conf ] ; then + echo "options scsi_mod scan=manual" > /etc/modprobe.d/95lunmask.conf + fi + create_udev_rule $1 $2 $3 + ) +done diff --git a/modules.d/95lunmask/sas_transport_scan_lun.sh b/modules.d/95lunmask/sas_transport_scan_lun.sh new file mode 100644 index 0000000..f7702f8 --- /dev/null +++ b/modules.d/95lunmask/sas_transport_scan_lun.sh @@ -0,0 +1,26 @@ +#!/bin/bash +# +# sas_transport_lun_scan +# +# Selectively enable individual LUNs behind a SAS end device +# +# ACTION=="add", SUBSYSTEM=="sas_transport", ATTR{sas_address}=="sas_addr", \ +# PROGRAM="sas_transport_lun_scan lun" +# + +[ -z $DEVPATH ] && exit 1 + +if [ -n "$1" ] ; then + LUN=$1 +else + LUN=- +fi +ID=${DEVPATH##*/end_device-} +HOST=${ID%%:*} +CHANNEL=${ID%%-*} +CHANNEL=${CHANNEL#*:} +if [ -f /sys$DEVPATH/scsi_target_id ] ; then + TARGET=$(cat /sys$DEVPATH/scsi_target_id) +fi +[ -z "$TARGET" ] && exit 1 +echo 0 $TARGET $LUN > /sys/class/scsi_host/host$HOST/scan -- 2.6.6 ++++++ 0500-Reset-IFS-variable.patch ++++++ >From bcfdc4522d2f04d0a1fd46d80a8ac7ff357b8bc5 Mon Sep 17 00:00:00 2001 From: Hannes Reinecke <h...@suse.de> Date: Mon, 14 Jul 2014 10:22:31 +0200 Subject: Reset IFS variable Setting and unsetting the IFS variable is tricky. To be on the safe side we should always reset the IFS variable to its original value after parsing. Signed-off-by: Hannes Reinecke <h...@suse.de> --- modules.d/95dasd/parse-dasd.sh | 2 ++ modules.d/95zfcp/parse-zfcp.sh | 2 ++ 3 files changed, 6 insertions(+) Index: dracut-044/modules.d/95dasd/parse-dasd.sh =================================================================== --- dracut-044.orig/modules.d/95dasd/parse-dasd.sh 2015-11-25 14:22:28.000000000 +0100 +++ dracut-044/modules.d/95dasd/parse-dasd.sh 2016-04-26 15:12:30.739569930 +0200 @@ -1,8 +1,10 @@ #!/bin/sh for dasd_arg in $(getargs rd.dasd= -d rd_DASD= DASD=); do ( + local OLDIFS="$IFS" IFS="," set -- $dasd_arg + IFS="$OLDIFS" echo "$@" | normalize_dasd_arg >> /etc/dasd.conf ) done Index: dracut-044/modules.d/95dasd_rules/parse-dasd.sh =================================================================== --- dracut-044.orig/modules.d/95dasd_rules/parse-dasd.sh 2016-04-26 15:12:29.575504027 +0200 +++ dracut-044/modules.d/95dasd_rules/parse-dasd.sh 2016-04-26 15:16:13.780196465 +0200 @@ -59,8 +59,10 @@ for dasd_arg in $(getargs root=) $(getar ;; esac if [ -n "$ccw_arg" ] ; then + OLDIFS="$IFS" IFS="-" set -- $ccw_arg + IFS="$OLDIFS" create_udev_rule $2 fi ) @@ -68,9 +70,10 @@ done for dasd_arg in $(getargs rd.dasd=); do ( + OLDIFS="$IFS" IFS="," set -- $dasd_arg - unset IFS + IFS="$OLDIFS" while (($# > 0)); do case $1 in autodetect|probeonly) @@ -78,13 +81,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 $(( 16#$start )) $(( 16#$end )) ) ; do create_udev_rule $(printf "0.0.%04x" "$dev") done Index: dracut-044/modules.d/95zfcp_rules/parse-zfcp.sh =================================================================== --- dracut-044.orig/modules.d/95zfcp_rules/parse-zfcp.sh 2016-04-26 15:12:30.051530977 +0200 +++ dracut-044/modules.d/95zfcp_rules/parse-zfcp.sh 2016-04-26 15:17:31.484595325 +0200 @@ -53,8 +53,10 @@ fi for zfcp_arg in $(getargs rd.zfcp); do ( + OLDIFS="$IFS" IFS="," set $zfcp_arg + IFS="$OLDIFS" create_udev_rule $1 $2 $3 ) done @@ -70,8 +72,10 @@ for zfcp_arg in $(getargs root=) $(getar ;; esac if [ -n "$ccw_arg" ] ; then + OLDIFS="$IFS" IFS="-" set -- $ccw_arg + IFS="$OLDIFS" _wwpn=${4%:*} _lun=${4#*:} create_udev_rule $2 $wwpn $lun