Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

[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
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -1040,12 +1040,11 @@ void scsi_io_completion(struct scsi_cmnd *cmd, unsigned int good_bytes)
				action = ACTION_FAIL;
			break;
		case ABORTED_COMMAND:
			action = ACTION_FAIL;
			if (sshdr.asc == 0x10) { /* DIF */
				description = "Target Data Integrity Failure";
				action = ACTION_FAIL;
				error = -EILSEQ;
			} else
				action = ACTION_RETRY;
			}
			break;
		case NOT_READY:
			/* If the device is in the process of becoming