From 910b43310f45abf13ddba2e35c05bb751b046073 Mon Sep 17 00:00:00 2001 From: Arshad Hussain Date: Fri, 30 Apr 2021 02:28:49 +0530 Subject: [PATCH] vdev_id: variable not getting expanded under map_slot() Under function map_slot() variable passed as args were not getting properly substituted or expanded. This patch fixes the substitution issue. Reviewed-by: Niklas Edmundsson Reviewed-by: Tony Hutter Reviewed-by: Brian Behlendorf Signed-off-by: Arshad Hussain Closes #11951 Closes #11959 --- cmd/vdev_id/vdev_id | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/cmd/vdev_id/vdev_id b/cmd/vdev_id/vdev_id index d8918da107..d349ba43ca 100755 --- a/cmd/vdev_id/vdev_id +++ b/cmd/vdev_id/vdev_id @@ -147,8 +147,9 @@ map_slot() { LINUX_SLOT=$1 CHANNEL=$2 - MAPPED_SLOT=$(awk '$1 == "slot" && $2 == "${LINUX_SLOT}" && \ - $4 ~ /^${CHANNEL}$|^$/ { print $3; exit}' $CONFIG) + MAPPED_SLOT=$(awk -v linux_slot="$LINUX_SLOT" -v channel="$CHANNEL" \ + '$1 == "slot" && $2 == linux_slot && \ + ($4 ~ "^"channel"$" || $4 ~ /^$/) { print $3; exit}' $CONFIG) if [ -z "$MAPPED_SLOT" ] ; then MAPPED_SLOT=$LINUX_SLOT fi @@ -163,7 +164,7 @@ map_channel() { case $TOPOLOGY in "sas_switch") MAPPED_CHAN=$(awk -v port="$PORT" \ - '$1 == "channel" && $2 == ${PORT} \ + '$1 == "channel" && $2 == port \ { print $3; exit }' $CONFIG) ;; "sas_direct"|"scsi")