diff options
author | Martin K. Petersen <martin.petersen@oracle.com> | 2008-07-17 04:28:33 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2008-07-26 15:14:55 -0400 |
commit | 511e44f42e3239a4df77b8e0e46d294d98a768ad (patch) | |
tree | a0af26ec88cbf65b79aa23640035fbdb7fca795b /drivers/scsi/scsi_error.c | |
parent | 7027ad72a689797475973c6feb5f0b673382f779 (diff) | |
download | op-kernel-dev-511e44f42e3239a4df77b8e0e46d294d98a768ad.zip op-kernel-dev-511e44f42e3239a4df77b8e0e46d294d98a768ad.tar.gz |
[SCSI] Do not retry a request whose data integrity check failed
If initiator or target reject the I/O due to DIF errors there is no
point in retrying.
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/scsi/scsi_error.c')
-rw-r--r-- | drivers/scsi/scsi_error.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/scsi/scsi_error.c b/drivers/scsi/scsi_error.c index a69397f..fc4b2d0 100644 --- a/drivers/scsi/scsi_error.c +++ b/drivers/scsi/scsi_error.c @@ -344,6 +344,9 @@ static int scsi_check_sense(struct scsi_cmnd *scmd) return /* soft_error */ SUCCESS; case ABORTED_COMMAND: + if (sshdr.asc == 0x10) /* DIF */ + return SUCCESS; + return NEEDS_RETRY; case NOT_READY: case UNIT_ATTENTION: |