diff options
author | sckobras <[email protected]> | 2017-08-15 00:18:26 +0200 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2017-08-14 15:18:26 -0700 |
commit | d49d9c2bdc31263536d3b714d7e393b66321886a (patch) | |
tree | 81f66c04711c00aff1157a276f36622129c3f13a /cmd/vdev_id | |
parent | d977122da92e870a6a8990437ced845a04c39cfc (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-x | cmd/vdev_id/vdev_id | 6 |
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}) |