Browse Source

[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>
Pete Wyckoff 18 years ago
parent
commit
b22f687dd2
1 changed files with 2 additions and 2 deletions
  1. 2 2
      drivers/scsi/scsi_lib.c

+ 2 - 2
drivers/scsi/scsi_lib.c

@@ -848,8 +848,8 @@ void scsi_io_completion(struct scsi_cmnd *cmd, unsigned int good_bytes)
 				memcpy(req->sense, cmd->sense_buffer,  len);
 				req->sense_len = len;
 			}
-		} else
-			req->data_len = cmd->resid;
+		}
+		req->data_len = cmd->resid;
 	}
 
 	/*