From 236bf44d016fa8e045e182c42c8cca7a12659210 Mon Sep 17 00:00:00 2001 From: Mike Snitzer Date: Thu, 31 May 2012 15:05:33 -0400 Subject: [PATCH] --- yaml --- r: 322601 b: refs/heads/master c: 27c419739b67decced4650440829b8d51bef954b h: refs/heads/master i: 322599: a296fcc59d01e7ed0ed1cda1363e6f5cc725afe7 v: v3 --- [refs] | 2 +- trunk/drivers/scsi/scsi_lib.c | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 327275b7b747..246e78bee806 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: bd8d6dd43a77bfd2b8fef5b094b9d6095e169dee +refs/heads/master: 27c419739b67decced4650440829b8d51bef954b diff --git a/trunk/drivers/scsi/scsi_lib.c b/trunk/drivers/scsi/scsi_lib.c index ffd77739ae3e..faa790fba134 100644 --- a/trunk/drivers/scsi/scsi_lib.c +++ b/trunk/drivers/scsi/scsi_lib.c @@ -776,7 +776,6 @@ void scsi_io_completion(struct scsi_cmnd *cmd, unsigned int good_bytes) } if (req->cmd_type == REQ_TYPE_BLOCK_PC) { /* SG_IO ioctl from block level */ - req->errors = result; if (result) { if (sense_valid && req->sense) { /* @@ -792,6 +791,10 @@ void scsi_io_completion(struct scsi_cmnd *cmd, unsigned int good_bytes) if (!sense_deferred) error = __scsi_error_from_host_byte(cmd, result); } + /* + * __scsi_error_from_host_byte may have reset the host_byte + */ + req->errors = cmd->result; req->resid_len = scsi_get_resid(cmd);