diff --git a/zconf/lszfcp b/zconf/lszfcp index 4b5da9f7..e31d8dde 100755 --- a/zconf/lszfcp +++ b/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 } diff --git a/zconf/lszfcp.8 b/zconf/lszfcp.8 index 0b91ed07..2ad4f3ac 100644 --- a/zconf/lszfcp.8 +++ b/zconf/lszfcp.8 @@ -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