From 90288ad550b6494203ae58c8f64e6fae010fe62e Mon Sep 17 00:00:00 2001 From: Brian King Date: Tue, 23 Aug 2011 04:45:30 +0000 Subject: [PATCH] ofpath: Handle disk devices with no sd node Some storage boxes report a direct access device at LUN 31 which does not actually result in an sd device being attached. Skip over these devices when parsing /proc/scsi/scsi. Signed-off-by: Brian King Signed-off-by: Tony Breeds --- ybin/ofpath | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/ybin/ofpath b/ybin/ofpath index a487149..4892d8c 100755 --- a/ybin/ofpath +++ b/ybin/ofpath @@ -285,17 +285,20 @@ scsiinfo() [ "$DEBUG" = 1 ] && echo 1>&2 "$PRG: DEBUG: DEVHOST=$DEVHOST" if [ "$DEVTYPE" = "Direct-Access" ] || [ "$DEVTYPE" = "Direct-Access-RBC" ] ; then - DEVCOUNT="$(($DEVCOUNT + 1))" - [ "$DEBUG" = 1 ] && echo 1>&2 "$PRG: DEBUG: DEVCOUNT=$DEVCOUNT" - if [ "$SUBDEV" = "$DEVCOUNT" ] ; then - DEVICE_HOST=$DEVHOST - DEVICE_BUS=$DEVBUS - DEVICE_ID=$DEVID - DEVICE_LUN=$DEVLUN - [ "$DEBUG" = 1 ] && echo 1>&2 "$PRG: DEBUG: DEVICE_HOST=$DEVICE_HOST" - break - fi - fi + ls /sys/bus/scsi/devices/$DEVHOST:$DEVBUS:$DEVID:$DEVLUN/scsi_disk* > /dev/null 2>&1 + if [ $? -eq 0 ] ; then + DEVCOUNT="$(($DEVCOUNT + 1))" + [ "$DEBUG" = 1 ] && echo 1>&2 "$PRG: DEBUG: DEVCOUNT=$DEVCOUNT" + if [ "$SUBDEV" = "$DEVCOUNT" ] ; then + DEVICE_HOST=$DEVHOST + DEVICE_BUS=$DEVBUS + DEVICE_ID=$DEVID + DEVICE_LUN=$DEVLUN + [ "$DEBUG" = 1 ] && echo 1>&2 "$PRG: DEBUG: DEVICE_HOST=$DEVICE_HOST" + break + fi + fi + fi done ## figure out what the scsi driver is, it is /proc/scsi/dirname. -- 2.39.2