sg3_utils/0006-rescan-scsi-bus-sgdevice26-do-not-traverse-sg-class-.patch
Wenchao Hao bde7a88707 backport rescan-scsi-bus patches from mainline
rescan-scsi-bus: sgdevice26: do not traverse sg class
if scsi_device isnot added, which would speed up the
rescan flow.

rescan-scsi-bus.sh: add option --no-lip-scan, which would
make FC can rescan device with specific channel and target

Signed-off-by: Wenchao Hao <haowenchao@huawei.com>
2022-09-02 17:02:45 +08:00

58 lines
1.8 KiB
Diff

From 4ea97e60c544ad44ee7396c815064d87f0d25874 Mon Sep 17 00:00:00 2001
From: Douglas Gilbert <dgilbert@interlog.com>
Date: Sun, 7 Aug 2022 02:49:03 +0000
Subject: [PATCH] rescan-scsi-bus: sgdevice26: do not traverse sg class if
scsi_device isnot added
For system which has a massive number of scsi_devices, it would takes a long time to
traverse /sys/class/scsi_generic to find a related sg. If the scsi_device of specific
scsiid host:channel:target:lun did not added, the traverse would find no sg neither.
Signed-off-by: Wenchao Hao <haowenchao@huawei.com>
From: https://github.com/doug-gilbert/sg3_utils/pull/21
git-svn-id: https://svn.bingwo.ca/repos/sg3_utils/trunk@965 6180dd3e-e324-4e3e-922d-17de1ae2f315
---
scripts/rescan-scsi-bus.sh | 19 +++++++++++--------
1 file changed, 11 insertions(+), 8 deletions(-)
diff --git a/scripts/rescan-scsi-bus.sh b/scripts/rescan-scsi-bus.sh
index 0c33384..f3e3b2c 100755
--- a/scripts/rescan-scsi-bus.sh
+++ b/scripts/rescan-scsi-bus.sh
@@ -184,18 +184,21 @@ sgdevice26 ()
{
local gendev
+ # if the scsi device has not been added, then there would not
+ # a related sgdev. So it's pointless to scan all sgs to find
+ # a related sg.
+ scsidev=/sys/class/scsi_device/${host}:${channel}:${id}:${lun}
+ if [ ! -e "$scsidev" ]; then
+ SGDEV=""
+ return
+ fi
+
gendev=/sys/class/scsi_device/${host}:${channel}:${id}:${lun}/device/generic
if [ -e "$gendev" ] ; then
SGDEV=$(basename "$(readlink "$gendev")")
- else
- for SGDEV in /sys/class/scsi_generic/sg*; do
- DEV=$(readlink "$SGDEV/device")
- if [ "${DEV##*/}" = "$host:$channel:$id:$lun" ] ; then
- SGDEV=$(basename "$SGDEV"); return
- fi
- done
- SGDEV=""
+ return
fi
+ SGDEV=""
}
# Find sg device with 2.4 report-devs extensions
--
2.27.0