mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 12:42:02 +00:00
[SCSI] scsi_eh_prep_cmnd should save scmd->underflow
This patch (as1116) fixes a bug in scsi_eh_prep_cmnd() and scsi_eh_restore_cmnd(). These routines are supposed to save any values they change and restore them later, but someone forgot to save & restore scmd->underflow. This fixes part of the problem reported in Bugzilla #9638. [jejb: fix up rejections around DIF/DIX] Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
This commit is contained in:
parent
af55ff675a
commit
12265709ac
@ -667,6 +667,7 @@ void scsi_eh_prep_cmnd(struct scsi_cmnd *scmd, struct scsi_eh_save *ses,
|
||||
ses->sdb = scmd->sdb;
|
||||
ses->next_rq = scmd->request->next_rq;
|
||||
ses->result = scmd->result;
|
||||
ses->underflow = scmd->underflow;
|
||||
ses->prot_op = scmd->prot_op;
|
||||
|
||||
scmd->prot_op = SCSI_PROT_NORMAL;
|
||||
@ -727,6 +728,7 @@ void scsi_eh_restore_cmnd(struct scsi_cmnd* scmd, struct scsi_eh_save *ses)
|
||||
scmd->sdb = ses->sdb;
|
||||
scmd->request->next_rq = ses->next_rq;
|
||||
scmd->result = ses->result;
|
||||
scmd->underflow = ses->underflow;
|
||||
scmd->prot_op = ses->prot_op;
|
||||
}
|
||||
EXPORT_SYMBOL(scsi_eh_restore_cmnd);
|
||||
|
@ -74,6 +74,7 @@ struct scsi_eh_save {
|
||||
/* saved state */
|
||||
int result;
|
||||
enum dma_data_direction data_direction;
|
||||
unsigned underflow;
|
||||
unsigned char cmd_len;
|
||||
unsigned char prot_op;
|
||||
unsigned char *cmnd;
|
||||
|
Loading…
Reference in New Issue
Block a user