[SCSI] fix ABORTED_COMMAND looping forever problem
Instead of terminating after five retries, commands terminated by
ABORTED_COMMAND sense are retrying forever. The problem was
introduced by:
commit b60af5b0ad
Author: Alan Stern <stern@rowland.harvard.edu>
Date: Mon Nov 3 15:56:47 2008 -0500
[SCSI] simplify scsi_io_completion()
Which introduced an error whereby ABORTED_COMMAND now gets erroneously
retried in scsi_io_completion. Fix this by returning the behaviour
back to the default no retry.
Reported-by: Sitsofe Wheeler <sitsofe@yahoo.com>
Tested-by: Sitsofe Wheeler <sitsofe@yahoo.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
This commit is contained in:
Родитель
4034cc6815
Коммит
126c098296
|
@ -1040,12 +1040,11 @@ void scsi_io_completion(struct scsi_cmnd *cmd, unsigned int good_bytes)
|
||||||
action = ACTION_FAIL;
|
action = ACTION_FAIL;
|
||||||
break;
|
break;
|
||||||
case ABORTED_COMMAND:
|
case ABORTED_COMMAND:
|
||||||
|
action = ACTION_FAIL;
|
||||||
if (sshdr.asc == 0x10) { /* DIF */
|
if (sshdr.asc == 0x10) { /* DIF */
|
||||||
description = "Target Data Integrity Failure";
|
description = "Target Data Integrity Failure";
|
||||||
action = ACTION_FAIL;
|
|
||||||
error = -EILSEQ;
|
error = -EILSEQ;
|
||||||
} else
|
}
|
||||||
action = ACTION_RETRY;
|
|
||||||
break;
|
break;
|
||||||
case NOT_READY:
|
case NOT_READY:
|
||||||
/* If the device is in the process of becoming
|
/* If the device is in the process of becoming
|
||||||
|
|
Загрузка…
Ссылка в новой задаче