Commit 126c0982 authored by James Bottomley's avatar James Bottomley

[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 b60af5b0
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: default avatarSitsofe Wheeler <sitsofe@yahoo.com>
Tested-by: default avatarSitsofe Wheeler <sitsofe@yahoo.com>
Signed-off-by: default avatarJames Bottomley <James.Bottomley@HansenPartnership.com>
parent 4034cc68
...@@ -1040,12 +1040,11 @@ void scsi_io_completion(struct scsi_cmnd *cmd, unsigned int good_bytes) ...@@ -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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment