|
|
|
From 49a23aa4261a896303d7923d5c94c9840739022f Mon Sep 17 00:00:00 2001
|
|
|
|
From: Harald Hoyer <harald@redhat.com>
|
|
|
|
Date: Fri, 12 Sep 2014 09:57:13 +0200
|
|
|
|
Subject: [PATCH] cms/cmssetup.sh: fixed indention
|
|
|
|
|
|
|
|
(cherry picked from commit d68163551226d302677e358e721560d8d651a30f)
|
|
|
|
---
|
|
|
|
modules.d/80cms/cmssetup.sh | 260 ++++++++++++++++++------------------
|
|
|
|
1 file changed, 130 insertions(+), 130 deletions(-)
|
|
|
|
|
|
|
|
diff --git a/modules.d/80cms/cmssetup.sh b/modules.d/80cms/cmssetup.sh
|
|
|
|
index c9e13314..7dd481b5 100755
|
|
|
|
--- a/modules.d/80cms/cmssetup.sh
|
|
|
|
+++ b/modules.d/80cms/cmssetup.sh
|
|
|
|
@@ -44,147 +44,147 @@ function dasd_settle() {
|
|
|
|
}
|
|
|
|
|
|
|
|
function dasd_settle_all() {
|
|
|
|
- for dasdccw in $(while read line; do echo ${line%%(*}; done < /proc/dasd/devices) ; do
|
|
|
|
+ for dasdccw in $(while read line; do echo "${line%%(*}"; done < /proc/dasd/devices) ; do
|
|
|
|
if ! dasd_settle $dasdccw ; then
|
|
|
|
echo $"Could not access DASD $dasdccw in time"
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
return 0
|
|
|
|
- }
|
|
|
|
+}
|
|
|
|
|
|
|
|
# prints a canonocalized device bus ID for a given devno of any format
|
|
|
|
- function canonicalize_devno()
|
|
|
|
- {
|
|
|
|
- case ${#1} in
|
|
|
|
- 3) echo "0.0.0${1}" ;;
|
|
|
|
- 4) echo "0.0.${1}" ;;
|
|
|
|
- *) echo "${1}" ;;
|
|
|
|
- esac
|
|
|
|
- return 0
|
|
|
|
- }
|
|
|
|
+function canonicalize_devno()
|
|
|
|
+{
|
|
|
|
+ case ${#1} in
|
|
|
|
+ 3) echo "0.0.0${1}" ;;
|
|
|
|
+ 4) echo "0.0.${1}" ;;
|
|
|
|
+ *) echo "${1}" ;;
|
|
|
|
+ esac
|
|
|
|
+ return 0
|
|
|
|
+}
|
|
|
|
|
|
|
|
# read file from CMS and write it to /tmp
|
|
|
|
- function readcmsfile() # $1=dasdport $2=filename
|
|
|
|
- {
|
|
|
|
- local dev
|
|
|
|
- local numcpus
|
|
|
|
- local devname
|
|
|
|
- local ret=0
|
|
|
|
- if [ $# -ne 2 ]; then return; fi
|
|
|
|
+function readcmsfile() # $1=dasdport $2=filename
|
|
|
|
+{
|
|
|
|
+ local dev
|
|
|
|
+ local numcpus
|
|
|
|
+ local devname
|
|
|
|
+ local ret=0
|
|
|
|
+ if [ $# -ne 2 ]; then return; fi
|
|
|
|
# precondition: udevd created dasda block device node
|
|
|
|
- if ! dasd_cio_free -d $1 ; then
|
|
|
|
- echo $"DASD $1 could not be cleared from device blacklist"
|
|
|
|
- return 1
|
|
|
|
- fi
|
|
|
|
+ if ! dasd_cio_free -d $1 ; then
|
|
|
|
+ echo $"DASD $1 could not be cleared from device blacklist"
|
|
|
|
+ return 1
|
|
|
|
+ fi
|
|
|
|
|
|
|
|
- modprobe dasd_mod dasd=$CMSDASD
|
|
|
|
- modprobe dasd_eckd_mod
|
|
|
|
- udevadm settle
|
|
|
|
+ modprobe dasd_mod dasd=$CMSDASD
|
|
|
|
+ modprobe dasd_eckd_mod
|
|
|
|
+ udevadm settle
|
|
|
|
|
|
|
|
# precondition: dasd_eckd_mod driver incl. dependencies loaded,
|
|
|
|
# dasd_mod must be loaded without setting any DASD online
|
|
|
|
- dev=$(canonicalize_devno $1)
|
|
|
|
- numcpus=$(
|
|
|
|
- while read line; do
|
|
|
|
- if strstr "$line" "# processors"; then
|
|
|
|
- echo ${line##*:};
|
|
|
|
- break;
|
|
|
|
- fi;
|
|
|
|
- done < /proc/cpuinfo
|
|
|
|
- )
|
|
|
|
-
|
|
|
|
- if [ ${numcpus} -eq 1 ]; then
|
|
|
|
- echo 1 > /sys/bus/ccw/devices/$dev/online
|
|
|
|
- else
|
|
|
|
- if ! sysecho /sys/bus/ccw/devices/$dev/online 1; then
|
|
|
|
- echo $"DASD $dev could not be set online"
|
|
|
|
- return 1
|
|
|
|
- fi
|
|
|
|
- udevadm settle
|
|
|
|
- if ! dasd_settle $dev ; then
|
|
|
|
- echo $"Could not access DASD $dev in time"
|
|
|
|
- return 1
|
|
|
|
- fi
|
|
|
|
+ dev=$(canonicalize_devno $1)
|
|
|
|
+ numcpus=$(
|
|
|
|
+ while read line; do
|
|
|
|
+ if strstr "$line" "# processors"; then
|
|
|
|
+ echo ${line##*:};
|
|
|
|
+ break;
|
|
|
|
+ fi;
|
|
|
|
+ done < /proc/cpuinfo
|
|
|
|
+ )
|
|
|
|
+
|
|
|
|
+ if [ ${numcpus} -eq 1 ]; then
|
|
|
|
+ echo 1 > /sys/bus/ccw/devices/$dev/online
|
|
|
|
+ else
|
|
|
|
+ if ! sysecho /sys/bus/ccw/devices/$dev/online 1; then
|
|
|
|
+ echo $"DASD $dev could not be set online"
|
|
|
|
+ return 1
|
|
|
|
fi
|
|
|
|
-
|
|
|
|
udevadm settle
|
|
|
|
+ if ! dasd_settle $dev ; then
|
|
|
|
+ echo $"Could not access DASD $dev in time"
|
|
|
|
+ return 1
|
|
|
|
+ fi
|
|
|
|
+ fi
|
|
|
|
|
|
|
|
- devname=$(cd /sys/bus/ccw/devices/$dev/block; set -- *; [ -b /dev/$1 ] && echo $1)
|
|
|
|
- devname=${devname:-dasda}
|
|
|
|
+ udevadm settle
|
|
|
|
|
|
|
|
- [[ -d /mnt ]] || mkdir /mnt
|
|
|
|
- if cmsfs-fuse --to=UTF-8 -a /dev/$devname /mnt; then
|
|
|
|
- cat /mnt/$2 > /run/initramfs/$2
|
|
|
|
- umount /mnt || umount -l /mnt
|
|
|
|
- udevadm settle
|
|
|
|
- else
|
|
|
|
- echo $"Could not read conf file $2 on CMS DASD $1."
|
|
|
|
- ret=1
|
|
|
|
- fi
|
|
|
|
+ devname=$(cd /sys/bus/ccw/devices/$dev/block; set -- *; [ -b /dev/$1 ] && echo $1)
|
|
|
|
+ devname=${devname:-dasda}
|
|
|
|
|
|
|
|
- if ! sysecho /sys/bus/ccw/devices/$dev/online 0; then
|
|
|
|
- echo $"DASD $dev could not be set offline again"
|
|
|
|
- #return 1
|
|
|
|
- fi
|
|
|
|
+ [[ -d /mnt ]] || mkdir /mnt
|
|
|
|
+ if cmsfs-fuse --to=UTF-8 -a /dev/$devname /mnt; then
|
|
|
|
+ cat /mnt/$2 > /run/initramfs/$2
|
|
|
|
+ umount /mnt || umount -l /mnt
|
|
|
|
udevadm settle
|
|
|
|
+ else
|
|
|
|
+ echo $"Could not read conf file $2 on CMS DASD $1."
|
|
|
|
+ ret=1
|
|
|
|
+ fi
|
|
|
|
+
|
|
|
|
+ if ! sysecho /sys/bus/ccw/devices/$dev/online 0; then
|
|
|
|
+ echo $"DASD $dev could not be set offline again"
|
|
|
|
+ #return 1
|
|
|
|
+ fi
|
|
|
|
+ udevadm settle
|
|
|
|
|
|
|
|
# unbind all dasds to unload the dasd modules for a clean start
|
|
|
|
- ( cd /sys/bus/ccw/drivers/dasd-eckd; for i in *.*; do echo $i > unbind;done)
|
|
|
|
- udevadm settle
|
|
|
|
- modprobe -r dasd_eckd_mod
|
|
|
|
- udevadm settle
|
|
|
|
- modprobe -r dasd_diag_mod
|
|
|
|
- udevadm settle
|
|
|
|
- modprobe -r dasd_mod
|
|
|
|
- udevadm settle
|
|
|
|
- return $ret
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- processcmsfile()
|
|
|
|
- {
|
|
|
|
- source /tmp/cms.conf
|
|
|
|
- SUBCHANNELS="$(echo $SUBCHANNELS | sed 'y/ABCDEF/abcdef/')"
|
|
|
|
-
|
|
|
|
- if [[ $NETTYPE ]]; then
|
|
|
|
- (
|
|
|
|
- echo -n $NETTYPE,$SUBCHANNELS
|
|
|
|
- [[ $PORTNAME ]] && echo -n ",portname=$PORTNAME"
|
|
|
|
- [[ $LAYER2 ]] && echo -n ",layer2=$LAYER2"
|
|
|
|
- [[ "$NETTYPE" = "ctc" ]] && [[ $CTCPROT ]] && echo -n ",protocol=$CTCPROT"
|
|
|
|
- echo
|
|
|
|
- ) >> /etc/ccw.conf
|
|
|
|
-
|
|
|
|
- OLDIFS=$IFS
|
|
|
|
- IFS=,
|
|
|
|
- read -a subch_array <<< "indexzero,$SUBCHANNELS"
|
|
|
|
- IFS=$OLDIFS
|
|
|
|
- devbusid=${subch_array[1]}
|
|
|
|
- if [ "$NETTYPE" = "ctc" ]; then
|
|
|
|
- driver="ctcm"
|
|
|
|
- else
|
|
|
|
- driver=$NETTYPE
|
|
|
|
- fi
|
|
|
|
-
|
|
|
|
- printf 'SUBSYSTEM=="net", ACTION=="add", DRIVERS=="%s", KERNELS=="%s", ENV{INTERFACE}=="?*", RUN+="/sbin/initqueue --onetime --unique --name cmsifup-$env{INTERFACE} /sbin/cmsifup $env{INTERFACE}"\n' "$driver" "$devbusid" > /etc/udev/rules.d/99-cms.rules
|
|
|
|
- # remove the default net rules
|
|
|
|
- rm -f -- /etc/udev/rules.d/91-default-net.rules
|
|
|
|
- [[ -f /etc/udev/rules.d/90-net.rules ]] \
|
|
|
|
- || printf 'SUBSYSTEM=="net", ACTION=="online", RUN+="/sbin/initqueue --onetime --env netif=$env{INTERFACE} source_hook initqueue/online"\n' >> /etc/udev/rules.d/99-cms.rules
|
|
|
|
- udevadm control --reload
|
|
|
|
- znet_cio_free
|
|
|
|
- fi
|
|
|
|
+ ( cd /sys/bus/ccw/drivers/dasd-eckd; for i in *.*; do echo $i > unbind;done)
|
|
|
|
+ udevadm settle
|
|
|
|
+ modprobe -r dasd_eckd_mod
|
|
|
|
+ udevadm settle
|
|
|
|
+ modprobe -r dasd_diag_mod
|
|
|
|
+ udevadm settle
|
|
|
|
+ modprobe -r dasd_mod
|
|
|
|
+ udevadm settle
|
|
|
|
+ return $ret
|
|
|
|
+}
|
|
|
|
|
|
|
|
- if [[ $DASD ]]; then
|
|
|
|
- echo $DASD | normalize_dasd_arg > /etc/dasd.conf
|
|
|
|
- echo "options dasd_mod dasd=$DASD" > /etc/modprobe.d/dasd_mod.conf
|
|
|
|
- dasd_cio_free
|
|
|
|
+processcmsfile()
|
|
|
|
+{
|
|
|
|
+ source /tmp/cms.conf
|
|
|
|
+ SUBCHANNELS="$(echo $SUBCHANNELS | sed 'y/ABCDEF/abcdef/')"
|
|
|
|
+
|
|
|
|
+ if [[ $NETTYPE ]]; then
|
|
|
|
+ (
|
|
|
|
+ echo -n $NETTYPE,$SUBCHANNELS
|
|
|
|
+ [[ $PORTNAME ]] && echo -n ",portname=$PORTNAME"
|
|
|
|
+ [[ $LAYER2 ]] && echo -n ",layer2=$LAYER2"
|
|
|
|
+ [[ "$NETTYPE" = "ctc" ]] && [[ $CTCPROT ]] && echo -n ",protocol=$CTCPROT"
|
|
|
|
+ echo
|
|
|
|
+ ) >> /etc/ccw.conf
|
|
|
|
+
|
|
|
|
+ OLDIFS=$IFS
|
|
|
|
+ IFS=,
|
|
|
|
+ read -a subch_array <<< "indexzero,$SUBCHANNELS"
|
|
|
|
+ IFS=$OLDIFS
|
|
|
|
+ devbusid=${subch_array[1]}
|
|
|
|
+ if [ "$NETTYPE" = "ctc" ]; then
|
|
|
|
+ driver="ctcm"
|
|
|
|
+ else
|
|
|
|
+ driver=$NETTYPE
|
|
|
|
fi
|
|
|
|
|
|
|
|
- unset _do_zfcp
|
|
|
|
- for i in ${!FCP_*}; do
|
|
|
|
- echo "${!i}" | while read port rest; do
|
|
|
|
- case $port in
|
|
|
|
+ printf 'SUBSYSTEM=="net", ACTION=="add", DRIVERS=="%s", KERNELS=="%s", ENV{INTERFACE}=="?*", RUN+="/sbin/initqueue --onetime --unique --name cmsifup-$env{INTERFACE} /sbin/cmsifup $env{INTERFACE}"\n' "$driver" "$devbusid" > /etc/udev/rules.d/99-cms.rules
|
|
|
|
+ # remove the default net rules
|
|
|
|
+ rm -f -- /etc/udev/rules.d/91-default-net.rules
|
|
|
|
+ [[ -f /etc/udev/rules.d/90-net.rules ]] \
|
|
|
|
+ || printf 'SUBSYSTEM=="net", ACTION=="online", RUN+="/sbin/initqueue --onetime --env netif=$env{INTERFACE} source_hook initqueue/online"\n' >> /etc/udev/rules.d/99-cms.rules
|
|
|
|
+ udevadm control --reload
|
|
|
|
+ znet_cio_free
|
|
|
|
+ fi
|
|
|
|
+
|
|
|
|
+ if [[ $DASD ]]; then
|
|
|
|
+ echo $DASD | normalize_dasd_arg > /etc/dasd.conf
|
|
|
|
+ echo "options dasd_mod dasd=$DASD" > /etc/modprobe.d/dasd_mod.conf
|
|
|
|
+ dasd_cio_free
|
|
|
|
+ fi
|
|
|
|
+
|
|
|
|
+ unset _do_zfcp
|
|
|
|
+ for i in ${!FCP_*}; do
|
|
|
|
+ echo "${!i}" | while read port rest; do
|
|
|
|
+ case $port in
|
|
|
|
*.*.*)
|
|
|
|
;;
|
|
|
|
*.*)
|
|
|
|
@@ -193,23 +193,23 @@ function dasd_settle_all() {
|
|
|
|
*)
|
|
|
|
port="0.0.$port"
|
|
|
|
;;
|
|
|
|
- esac
|
|
|
|
- echo $port $rest >> /etc/zfcp.conf
|
|
|
|
- done
|
|
|
|
- _do_zfcp=1
|
|
|
|
+ esac
|
|
|
|
+ echo $port $rest >> /etc/zfcp.conf
|
|
|
|
done
|
|
|
|
- [[ $_do_zfcp ]] && zfcp_cio_free
|
|
|
|
- unset _do_zfcp
|
|
|
|
- }
|
|
|
|
+ _do_zfcp=1
|
|
|
|
+ done
|
|
|
|
+ [[ $_do_zfcp ]] && zfcp_cio_free
|
|
|
|
+ unset _do_zfcp
|
|
|
|
+}
|
|
|
|
|
|
|
|
- [[ $CMSDASD ]] || CMSDASD=$(getarg "CMSDASD=")
|
|
|
|
- [[ $CMSCONFFILE ]] || CMSCONFFILE=$(getarg "CMSCONFFILE=")
|
|
|
|
+[[ $CMSDASD ]] || CMSDASD=$(getarg "CMSDASD=")
|
|
|
|
+[[ $CMSCONFFILE ]] || CMSCONFFILE=$(getarg "CMSCONFFILE=")
|
|
|
|
|
|
|
|
# Parse configuration
|
|
|
|
- if [ -n "$CMSDASD" -a -n "$CMSCONFFILE" ]; then
|
|
|
|
- if readcmsfile $CMSDASD $CMSCONFFILE; then
|
|
|
|
- ln -s /run/initramfs/$CMSCONFFILE /tmp/$CMSCONFFILE
|
|
|
|
- ln -s /run/initramfs/$CMSCONFFILE /tmp/cms.conf
|
|
|
|
- processcmsfile
|
|
|
|
- fi
|
|
|
|
+if [ -n "$CMSDASD" -a -n "$CMSCONFFILE" ]; then
|
|
|
|
+ if readcmsfile $CMSDASD $CMSCONFFILE; then
|
|
|
|
+ ln -s /run/initramfs/$CMSCONFFILE /tmp/$CMSCONFFILE
|
|
|
|
+ ln -s /run/initramfs/$CMSCONFFILE /tmp/cms.conf
|
|
|
|
+ processcmsfile
|
|
|
|
fi
|
|
|
|
+fi
|