diff options
Diffstat (limited to '')
-rwxr-xr-x | modules.d/95zfcp/module-setup.sh | 4 | ||||
-rwxr-xr-x | modules.d/95zfcp/parse-zfcp.sh | 11 | ||||
-rwxr-xr-x | modules.d/95zfcp_rules/module-setup.sh | 80 | ||||
-rwxr-xr-x | modules.d/95zfcp_rules/parse-zfcp.sh | 73 |
4 files changed, 2 insertions, 166 deletions
diff --git a/modules.d/95zfcp/module-setup.sh b/modules.d/95zfcp/module-setup.sh index e1f3aa3..b547f9b 100755 --- a/modules.d/95zfcp/module-setup.sh +++ b/modules.d/95zfcp/module-setup.sh @@ -5,7 +5,7 @@ check() { arch=${DRACUT_ARCH:-$(uname -m)} [ "$arch" = "s390" -o "$arch" = "s390x" ] || return 1 - require_binaries zfcp_cio_free grep sed seq || return 1 + require_binaries zfcp_cio_free sed || return 1 return 0 } @@ -23,7 +23,7 @@ installkernel() { # called by dracut install() { inst_hook cmdline 30 "$moddir/parse-zfcp.sh" - inst_multiple zfcp_cio_free grep sed seq + inst_multiple zfcp_cio_free sed inst_script /sbin/zfcpconf.sh inst_rules 56-zfcp.rules diff --git a/modules.d/95zfcp/parse-zfcp.sh b/modules.d/95zfcp/parse-zfcp.sh index 495aa67..41216dd 100755 --- a/modules.d/95zfcp/parse-zfcp.sh +++ b/modules.d/95zfcp/parse-zfcp.sh @@ -2,15 +2,4 @@ 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 - echo "$zfcp_arg" | grep '^0\.[0-9a-fA-F]\.[0-9a-fA-F]\{4\}\(,0x[0-9a-fA-F]\{16\},0x[0-9a-fA-F]\{16\}\)\?$' > /dev/null - test $? -ne 0 && die "For argument 'rd.zfcp=$zfcp_arg'\nSorry, invalid format." - ( - IFS="," - # shellcheck disable=SC2086 - set $zfcp_arg - echo "$@" >> /etc/zfcp.conf - ) -done - zfcp_cio_free diff --git a/modules.d/95zfcp_rules/module-setup.sh b/modules.d/95zfcp_rules/module-setup.sh deleted file mode 100755 index dfa7951..0000000 --- a/modules.d/95zfcp_rules/module-setup.sh +++ /dev/null @@ -1,80 +0,0 @@ -#!/bin/bash - -# called by dracut -cmdline() { - is_zfcp() { - local _dev=$1 - local _devpath - _devpath=$( - cd -P /sys/dev/block/"$_dev" || exit - echo "$PWD" - ) - local _sdev _scsiid _hostno _lun _wwpn _ccw _port_type - local _allow_lun_scan _is_npiv - - read -r _allow_lun_scan < /sys/module/zfcp/parameters/allow_lun_scan - [ "${_devpath#*/sd}" == "$_devpath" ] && return 1 - _sdev="${_devpath%%/block/*}" - [ -e "${_sdev}"/fcp_lun ] || return 1 - _scsiid="${_sdev##*/}" - _hostno="${_scsiid%%:*}" - [ -d /sys/class/fc_host/host"${_hostno}" ] || return 1 - read -r _port_type < /sys/class/fc_host/host"${_hostno}"/port_type - case "$_port_type" in - NPIV*) - _is_npiv=1 - ;; - esac - read -r _ccw < "${_sdev}"/hba_id - if [ "$_is_npiv" ] && [ "$_allow_lun_scan" = "Y" ]; then - echo "rd.zfcp=${_ccw}" - else - read -r _lun < "${_sdev}"/fcp_lun - read -r _wwpn < "${_sdev}"/wwpn - echo "rd.zfcp=${_ccw},${_wwpn},${_lun}" - fi - return 0 - } - [[ $hostonly ]] || [[ $mount_needs ]] && { - for_each_host_dev_and_slaves_all is_zfcp - } | sort | uniq -} - -# called by dracut -check() { - local _arch=${DRACUT_ARCH:-$(uname -m)} - local _ccw - [ "$_arch" = "s390" -o "$_arch" = "s390x" ] || return 1 - - [[ $hostonly ]] || [[ $mount_needs ]] && { - found=0 - for _ccw in /sys/bus/ccw/devices/*/host*; do - [ -d "$_ccw" ] || continue - found=$((found + 1)) - done - [ $found -eq 0 ] && return 255 - } - return 0 -} - -# called by dracut -depends() { - echo bash - return 0 -} - -# called by dracut -install() { - 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-zfcp-*.rules" - fi -} diff --git a/modules.d/95zfcp_rules/parse-zfcp.sh b/modules.d/95zfcp_rules/parse-zfcp.sh deleted file mode 100755 index 5e7d909..0000000 --- a/modules.d/95zfcp_rules/parse-zfcp.sh +++ /dev/null @@ -1,73 +0,0 @@ -#!/bin/bash - -create_udev_rule() { - local ccw=$1 - local wwpn=$2 - local lun=$3 - local _rule=/etc/udev/rules.d/51-zfcp-${ccw}.rules - local _cu_type _dev_type - - if [ -x /sbin/cio_ignore ] && cio_ignore -i "$ccw" > /dev/null; then - cio_ignore -r "$ccw" - fi - - if [ -e /sys/bus/ccw/devices/"${ccw}" ]; then - read -r _cu_type < /sys/bus/ccw/devices/"${ccw}"/cutype - read -r _dev_type < /sys/bus/ccw/devices/"${ccw}"/devtype - fi - if [ "$_cu_type" != "1731/03" ]; then - return 0 - fi - if [ "$_dev_type" != "1732/03" ] && [ "$_dev_type" != "1732/04" ]; then - return 0 - fi - - [ -z "$wwpn" ] || [ -z "$lun" ] && return - m=$(sed -n "/.*${wwpn}.*${lun}.*/p" "$_rule") - if [ -z "$m" ]; then - cat >> "$_rule" << EOF -ACTION=="add", KERNEL=="rport-*", ATTR{port_name}=="$wwpn", SUBSYSTEMS=="ccw", KERNELS=="$ccw", ATTR{[ccw/$ccw]$wwpn/unit_add}="$lun" -EOF - fi -} - -if [[ -f /sys/firmware/ipl/ipl_type ]] \ - && [[ $(< /sys/firmware/ipl/ipl_type) == "fcp" ]]; then - ( - read -r _wwpn < /sys/firmware/ipl/wwpn - read -r _lun < /sys/firmware/ipl/lun - read -r _ccw < /sys/firmware/ipl/device - - create_udev_rule "$_ccw" "$_wwpn" "$_lun" - ) -fi - -for zfcp_arg in $(getargs rd.zfcp); do - ( - OLDIFS="$IFS" - IFS="," - # shellcheck disable=SC2086 - set $zfcp_arg - IFS="$OLDIFS" - create_udev_rule "$1" "$2" "$3" - ) -done - -for zfcp_arg in $(getargs root=) $(getargs resume=); do - ( - case $zfcp_arg in - /dev/disk/by-path/ccw-*) - ccw_arg=${zfcp_arg##*/} - ;; - esac - if [ -n "$ccw_arg" ]; then - OLDIFS="$IFS" - IFS="-" - set -- "$ccw_arg" - IFS="$OLDIFS" - _wwpn=${4%:*} - _lun=${4#*:} - create_udev_rule "$2" "$wwpn" "$lun" - fi - ) -done |