Files
linux/drivers
Alan Stern e47373ec1c [SCSI] return success after retries in scsi_eh_tur
The problem lies in the way the error handler uses TEST UNIT READY to
tell whether error recovery has succeeded.  The scsi_eh_tur function
gives up after one round of retrying; after that it decides that more
error recovery is needed.

However TUR is liable to report sense data indicating a retry is needed
when in fact error recovery has succeeded.  A typical example might be
SK=2, ASC=4, ASCQ=1 (Logical unit in process of becoming ready).  The mere
fact that we were able to get a sensible reply to the TUR should indicate
that the device is working well enough to stop error recovery.

I ran across a case back in January where this happened.  A CD-ROM drive
timed out the INQUIRY command, and a device reset fixed the blockage.
But then the drive kept responding with 2/4/1 -- because it was spinning
up I suppose -- until the error handler gave up and placed it offline.
If the initial INQUIRY had received the 2/4/1 instead, everything would
have worked okay.  It doesn't seem reasonable for things to fail just
because the error handler had started running.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
2005-09-06 17:19:23 -05:00
..
2005-07-28 08:39:01 -07:00
2005-07-02 19:12:10 -05:00
2005-07-28 08:39:00 -07:00
2005-07-27 16:25:57 -07:00
2005-09-04 19:51:45 -05:00
2005-07-12 16:01:02 -07:00
2005-04-16 15:20:36 -07:00
2005-07-29 15:01:14 -07:00
2005-06-21 18:46:32 -07:00
2005-04-16 15:20:36 -07:00
2005-07-29 13:12:51 -07:00
2005-07-11 14:14:31 -07:00