aboutsummaryrefslogtreecommitdiffstats
path: root/cmd/vdev_id
diff options
context:
space:
mode:
authorsckobras <[email protected]>2017-08-15 00:18:26 +0200
committerBrian Behlendorf <[email protected]>2017-08-14 15:18:26 -0700
commitd49d9c2bdc31263536d3b714d7e393b66321886a (patch)
tree81f66c04711c00aff1157a276f36622129c3f13a /cmd/vdev_id
parentd977122da92e870a6a8990437ced845a04c39cfc (diff)
vdev_id: implement slot numbering by port id
With HPE hardware and hpsa-driven SAS adapters, only a single phy is reported, but no individual per-port phys (ie. no phy* entry below port_dir), which breaks topology detection in the current sas_handler code. Instead, slot information can be derived directly from the port number. This change implements a new slot keyword "port" similar to "id" and "lun", and assumes a default phy/port of 0 if no individual phy entry can be found. It allows to use the "sas_direct" topology with current HPE Dxxxx and Apollo 45xx JBODs. Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Daniel Kobras <[email protected]> Closes #6484
Diffstat (limited to 'cmd/vdev_id')
-rwxr-xr-xcmd/vdev_id/vdev_id6
1 files changed, 5 insertions, 1 deletions
diff --git a/cmd/vdev_id/vdev_id b/cmd/vdev_id/vdev_id
index c7d962045..a2cba086e 100755
--- a/cmd/vdev_id/vdev_id
+++ b/cmd/vdev_id/vdev_id
@@ -237,7 +237,7 @@ sas_handler() {
PHY=`ls -d $port_dir/phy* 2>/dev/null | head -1 | awk -F: '{print $NF}'`
if [ -z "$PHY" ] ; then
- return
+ PHY=0
fi
PORT=$(( $PHY / $PHYS_PER_PORT ))
@@ -262,6 +262,10 @@ sas_handler() {
"phy")
SLOT=`cat $end_device_dir/phy_identifier 2>/dev/null`
;;
+ "port")
+ d=$(eval echo \${$i})
+ SLOT=`echo $d | sed -e 's/^.*://'`
+ ;;
"id")
i=$(($i + 1))
d=$(eval echo \${$i})