mirror of
https://github.com/ibm-s390-linux/s390-tools.git
synced 2026-08-05 02:14:52 +00:00
lszfcp: allow to show zfcp_units without associated SCSI device
Useful to detect configuration errors and FCP LUN typos.
Example:
$ lszfcp -De
0.0.3c80/0x500507630313d327/0xffffffffffffffff - failed
$ lszfcp -DeV
/sys/devices/css0/0.0.0222/0.0.3c80/0x500507630313d327/0xffffffffffffffff failed
-
$ lszfcp -Deam
0.0.3c80/0x500507630313d327/0xffffffffffffffff - failed
Class = "zfcp_unit"
access_denied = "0"
access_readonly = "0"
access_shared = "0"
failed = "1"
in_recovery = "0"
status = "0x00000000"
Signed-off-by: Steffen Maier <maier@linux.ibm.com>
Reviewed-by: Jens Remus <jremus@linux.ibm.com>
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
This commit is contained in:
committed by
Jan Höppner
parent
e84287e76e
commit
f67758160e
54
zconf/lszfcp
54
zconf/lszfcp
@@ -344,7 +344,15 @@ show_devices()
|
||||
SCSI_DEVICE_LIST=`ls -d $SYSFS/devices/css0/*/*/host[0-9]*/*/`
|
||||
fi
|
||||
|
||||
if [ -z "$SCSI_DEVICE_LIST" ]; then
|
||||
if $SHOW_EXTENDED; then
|
||||
ZFCP_UNIT_LIST=$(ls -d \
|
||||
$SYSFS/devices/css[0-9]*/[0-9d]*/[0-9]*/0x*/0x* \
|
||||
2> /dev/null)
|
||||
else
|
||||
ZFCP_UNIT_LIST=""
|
||||
fi
|
||||
|
||||
if [ -z "$SCSI_DEVICE_LIST" ] && [ -z "$ZFCP_UNIT_LIST" ]; then
|
||||
if $SHOW_EXTENDED; then
|
||||
echo "Error: No zfcp-attached SCSI devices found."
|
||||
else
|
||||
@@ -357,6 +365,20 @@ show_devices()
|
||||
read WWPN < $SCSI_DEVICE_PATH/wwpn
|
||||
read LUN < $SCSI_DEVICE_PATH/fcp_lun
|
||||
|
||||
# remove from ZFCP_UNIT_LIST if SCSI device exists
|
||||
REDUCED_LIST=""
|
||||
for UNIT_PATH in $ZFCP_UNIT_LIST; do
|
||||
STRIPPED_PATH=$UNIT_PATH
|
||||
L=${UNIT_PATH##*/}
|
||||
STRIPPED_PATH=${STRIPPED_PATH%/*}
|
||||
W=${STRIPPED_PATH##*/}
|
||||
STRIPPED_PATH=${STRIPPED_PATH%/*}
|
||||
A=${STRIPPED_PATH##*/}
|
||||
[ "$A/$W/$L" = "$ADAPTER/$WWPN/$LUN" ] && continue
|
||||
REDUCED_LIST="$REDUCED_LIST $UNIT_PATH"
|
||||
done
|
||||
ZFCP_UNIT_LIST="$REDUCED_LIST"
|
||||
|
||||
[ $LUN != ${PAR_LUN:-$LUN} ] && continue
|
||||
[ $WWPN != ${PAR_WWPN:-$WWPN} ] && continue
|
||||
[ $ADAPTER != ${PAR_BUSID:-$ADAPTER} ] && continue
|
||||
@@ -426,6 +448,36 @@ show_devices()
|
||||
echo
|
||||
fi
|
||||
done
|
||||
|
||||
# what's left in ZFCP_UNIT_LIST are now units without SCSI device
|
||||
for UNIT_PATH in $ZFCP_UNIT_LIST; do
|
||||
STRIPPED_PATH=$UNIT_PATH
|
||||
LUN=${UNIT_PATH##*/}
|
||||
STRIPPED_PATH=${STRIPPED_PATH%/*}
|
||||
WWPN=${STRIPPED_PATH##*/}
|
||||
STRIPPED_PATH=${STRIPPED_PATH%/*}
|
||||
ADAPTER=${STRIPPED_PATH##*/}
|
||||
|
||||
[ $LUN != ${PAR_LUN:-$LUN} ] && continue
|
||||
[ $WWPN != ${PAR_WWPN:-$WWPN} ] && continue
|
||||
[ $ADAPTER != ${PAR_BUSID:-$ADAPTER} ] && continue
|
||||
|
||||
if [ $VERBOSITY -eq 0 ]; then
|
||||
echo "$ADAPTER/$WWPN/$LUN - failed"
|
||||
else
|
||||
echo "$UNIT_PATH failed"
|
||||
echo "-"
|
||||
fi
|
||||
|
||||
if $SHOW_ATTRIBUTES && [ $SHOW_MORE_ATTRS -ge 1 ]; then
|
||||
echo 'Class = "zfcp_unit"'
|
||||
show_attributes "$UNIT_PATH"
|
||||
fi
|
||||
|
||||
if $SHOW_ATTRIBUTES; then
|
||||
echo
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -56,7 +56,8 @@ not
|
||||
enumerated:
|
||||
hosts that have never been online (since last bind to zfcp device driver),
|
||||
hosts that are defunct (CHPID configured off, or z/VM detach),
|
||||
ports with fc_rport port_state unequal to "Online" (such as fibres pulled).
|
||||
ports with fc_rport port_state unequal to "Online" (such as fibres pulled),
|
||||
zfcp units without associated SCSI device (unit_add of non-existent LUN).
|
||||
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
|
||||
Reference in New Issue
Block a user