[PATCH] Retry INQUIRY on power-on

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,

the current inquiry code in scsi_scan.c:scsi_probe_lun() will retry the
inquiry only for ASC/ASCQ 0x28/0x0 and 0x29/0x0. When I'm hot-plugging a
disk no reset has necessarily happened, so the first rescan will fail.
The disk is found properly on the second rescan.

So we really should loosen that statement to do retry for all ASC 0x29
values as a power-on might well have occured without a reset.

Please apply.

Cheers,

Hannes
-- 
Dr. Hannes Reinecke			hare@xxxxxxx
SuSE Linux Products GmbH		S390 & zSeries
Maxfeldstraße 5				+49 911 74053 688
90409 Nürnberg				http://www.suse.de
From: Hannes Reinecke <hare@xxxxxxx>
Subject: Retry INQUIRY on power-on

The current code retries INQUIRY only for ASC/ASCQ 0x29/0x0
(POWER ON, RESET, OR BUS DEVICE RESET OCCURRED). This means drives
which have been hot-removed (ie without a reset) won't be detected
upon rescan. So we should loose this condition to enable a retry
for the ASC 0x29 in general.

Signed-off-by: Hannes Reinecke

diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c
index f149459..f6ead5c 100644
--- a/drivers/scsi/scsi_scan.c
+++ b/drivers/scsi/scsi_scan.c
@@ -514,8 +514,7 @@ static int scsi_probe_lun(struct scsi_de
 			    scsi_sense_valid(&sshdr)) {
 				if ((sshdr.sense_key == UNIT_ATTENTION) &&
 				    ((sshdr.asc == 0x28) ||
-				     (sshdr.asc == 0x29)) &&
-				    (sshdr.ascq == 0))
+				     (sshdr.asc == 0x29)))
 					continue;
 			}
 		}

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux