diff options
author | Mike Christie <michaelc@cs.wisc.edu> | 2009-09-28 16:50:52 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2009-10-29 13:03:27 -0400 |
commit | ad63082626f99651d261ccd8698ce4e997362f7e (patch) | |
tree | af5b75c5991ce3e932607d105f1019b9d237a7af /drivers/scsi/scsi_lib.c | |
parent | cce9c8aed7d3ac0a14815e99b4602ae6c854a0ba (diff) |
[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>
Diffstat (limited to 'drivers/scsi/scsi_lib.c')
-rw-r--r-- | drivers/scsi/scsi_lib.c | 2 |
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) | |||
898 | scsi_print_sense("", cmd); | 898 | scsi_print_sense("", cmd); |
899 | scsi_print_command(cmd); | 899 | scsi_print_command(cmd); |
900 | } | 900 | } |
901 | if (blk_end_request_err(req, -EIO)) | 901 | if (blk_end_request_err(req, error)) |
902 | scsi_requeue_command(q, cmd); | 902 | scsi_requeue_command(q, cmd); |
903 | else | 903 | else |
904 | scsi_next_command(cmd); | 904 | scsi_next_command(cmd); |