diff options
author | Pete Wyckoff <pw@osc.edu> | 2007-03-13 16:53:28 -0400 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.il.steeleye.com> | 2007-03-20 11:53:51 -0400 |
commit | b22f687dd28a7a8886b918294b4d558ef175c07d (patch) | |
tree | fe3fd16b98cb51bc5eb383d8c57b1ac4d2557032 | |
parent | a52decafbe3fdca5e8430d4f58ffcec1f4a6302c (diff) |
[SCSI] set resid in scsi_io_completion() even for check condition
Some targets can return both valid data and sense information.
Always update the request data_len from the SCSI command residual.
Callers should interpret sense data to determine what parts of the
data are valid in case of a CHECK CONDITION status.
Signed-off-by: Pete Wyckoff <pw@osc.edu>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
-rw-r--r-- | drivers/scsi/scsi_lib.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c index 5f955707d902..be8e6558b89e 100644 --- a/drivers/scsi/scsi_lib.c +++ b/drivers/scsi/scsi_lib.c | |||
@@ -848,8 +848,8 @@ void scsi_io_completion(struct scsi_cmnd *cmd, unsigned int good_bytes) | |||
848 | memcpy(req->sense, cmd->sense_buffer, len); | 848 | memcpy(req->sense, cmd->sense_buffer, len); |
849 | req->sense_len = len; | 849 | req->sense_len = len; |
850 | } | 850 | } |
851 | } else | 851 | } |
852 | req->data_len = cmd->resid; | 852 | req->data_len = cmd->resid; |
853 | } | 853 | } |
854 | 854 | ||
855 | /* | 855 | /* |