summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Christie <michaelc@cs.wisc.edu>2009-09-28 15:50:52 -0500
committerJames Bottomley <James.Bottomley@suse.de>2009-10-29 13:03:27 -0400
commitad63082626f99651d261ccd8698ce4e997362f7e (patch)
treeaf5b75c5991ce3e932607d105f1019b9d237a7af
parentcce9c8aed7d3ac0a14815e99b4602ae6c854a0ba (diff)
downloadlinux-stable-ad63082626f99651d261ccd8698ce4e997362f7e.tar.gz
linux-stable-ad63082626f99651d261ccd8698ce4e997362f7e.tar.bz2
linux-stable-ad63082626f99651d261ccd8698ce4e997362f7e.zip
[SCSI] fix propogation of integrity errors
When the Integrity check is done in scsi_io_completion it will set error to -EILSEQ. However, at this point error is no longer used, and blk_end_request_err has -EIO hardcoded. It looks like there was just porting mistake with this patch http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=3e695f89c5debb735e4ff051e9e58d8fb4e95110 and we meant to send error upwards, so this patch changes the hard coded EIO to the error variable. I have only boot tested this patch. Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Acked-by: Martin K. Petersen <martin.petersen@oracle.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
-rw-r--r--drivers/scsi/scsi_lib.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
index 5987da857103..108655230b59 100644
--- a/drivers/scsi/scsi_lib.c
+++ b/drivers/scsi/scsi_lib.c
@@ -898,7 +898,7 @@ void scsi_io_completion(struct scsi_cmnd *cmd, unsigned int good_bytes)
scsi_print_sense("", cmd);
scsi_print_command(cmd);
}
- if (blk_end_request_err(req, -EIO))
+ if (blk_end_request_err(req, error))
scsi_requeue_command(q, cmd);
else
scsi_next_command(cmd);