提交 b39c9a66 编写于 作者: B Brian King 提交者: Martin K. Petersen

SCSI: Increase REPORT_LUNS timeout

This patch fixes an issue seen with an IBM 2145 (SVC) where, following an error
injection test which results in paths going offline, when they came
back online, the path would timeout the REPORT_LUNS issued during the
scan. This timeout situation continued until retries were expired, resulting in
falling back to a sequential LUN scan. Then, since the target responds
with PQ=1, PDT=0 for all possible LUNs, due to the way the sequential
LUN scan code works, we end up adding 512 LUNs for each target, when there
is really only a small handful of LUNs that are actually present.

This patch increases the timeout used on the REPORT_LUNS to 30 seconds.
This patch solves the issue of 512 non existent LUNs showing up after
this event.
Signed-off-by: NBrian King <brking@linux.vnet.ibm.com>
Reviewed-by: NHannes Reinecke <hare@suse.de>
Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
上级 c8051156
...@@ -55,6 +55,7 @@ ...@@ -55,6 +55,7 @@
* Default timeout * Default timeout
*/ */
#define SCSI_TIMEOUT (2*HZ) #define SCSI_TIMEOUT (2*HZ)
#define SCSI_REPORT_LUNS_TIMEOUT (30*HZ)
/* /*
* Prefix values for the SCSI id's (stored in sysfs name field) * Prefix values for the SCSI id's (stored in sysfs name field)
...@@ -1383,7 +1384,7 @@ static int scsi_report_lun_scan(struct scsi_target *starget, int bflags, ...@@ -1383,7 +1384,7 @@ static int scsi_report_lun_scan(struct scsi_target *starget, int bflags,
result = scsi_execute_req(sdev, scsi_cmd, DMA_FROM_DEVICE, result = scsi_execute_req(sdev, scsi_cmd, DMA_FROM_DEVICE,
lun_data, length, &sshdr, lun_data, length, &sshdr,
SCSI_TIMEOUT + 4 * HZ, 3, NULL); SCSI_REPORT_LUNS_TIMEOUT, 3, NULL);
SCSI_LOG_SCAN_BUS(3, sdev_printk (KERN_INFO, sdev, SCSI_LOG_SCAN_BUS(3, sdev_printk (KERN_INFO, sdev,
"scsi scan: REPORT LUNS" "scsi scan: REPORT LUNS"
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册