kdump/kdump-explicitly-request-zFCP-devices.patch

59 lines
1.6 KiB
Diff

From: Petr Tesarik <ptesarik@suse.com>
Date: Fri Jun 23 14:53:50 2017 +0200
Subject: Explicitly request zFCP devices in kdump initrd
References: bsc#1008352
Upstream: v0.8.17
Git-commit: 81899709e4a12bea4819d4ccc10f960cb535b447
When using NPIV with LUN autoscan, dracut does not save the port and
LUN information. However, LUN autoscan is always disabled in kdump
environment, so the LUNs will never appear.
To fix this case, the full information must be saved explicitly in a
kdump initrd.
Signed-off-by: Petr Tesarik <ptesarik@suse.com>
---
init/module-setup.sh | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
--- a/init/module-setup.sh
+++ b/init/module-setup.sh
@@ -81,6 +81,25 @@ kdump_add_mpath_dev() {
fi
}
+kdump_cmdline_zfcp() {
+ 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
+ _ccw=$(cat ${_sdev}/hba_id)
+ _lun=$(cat ${_sdev}/fcp_lun)
+ _wwpn=$(cat ${_sdev}/wwpn)
+ echo "rd.zfcp=${_ccw},${_wwpn},${_lun}"
+ }
+ [[ $hostonly ]] || [[ $mount_needs ]] && {
+ for_each_host_dev_and_slaves_all is_zfcp
+ } | sort -u
+}
+
kdump_cmdline_ip() {
[ "$kdump_neednet" = y ] || return 0
@@ -142,6 +161,9 @@ kdump_gen_mount_units() {
}
cmdline() {
+ local _arch=$(uname -m)
+ [ "$_arch" = "s390" -o "$_arch" = "s390x" ] && kdump_cmdline_zfcp
+
kdump_cmdline_ip
}