diff options
Diffstat (limited to 'drivers/scsi/scsi_error.c')
-rw-r--r-- | drivers/scsi/scsi_error.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/scsi/scsi_error.c b/drivers/scsi/scsi_error.c index 4f4edc388c07..045a0868fc7b 100644 --- a/drivers/scsi/scsi_error.c +++ b/drivers/scsi/scsi_error.c | |||
@@ -618,9 +618,11 @@ void scsi_eh_prep_cmnd(struct scsi_cmnd *scmd, struct scsi_eh_save *ses, | |||
618 | memcpy(ses->cmnd, scmd->cmnd, sizeof(scmd->cmnd)); | 618 | memcpy(ses->cmnd, scmd->cmnd, sizeof(scmd->cmnd)); |
619 | ses->data_direction = scmd->sc_data_direction; | 619 | ses->data_direction = scmd->sc_data_direction; |
620 | ses->sdb = scmd->sdb; | 620 | ses->sdb = scmd->sdb; |
621 | ses->next_rq = scmd->request->next_rq; | ||
621 | ses->result = scmd->result; | 622 | ses->result = scmd->result; |
622 | 623 | ||
623 | memset(&scmd->sdb, 0, sizeof(scmd->sdb)); | 624 | memset(&scmd->sdb, 0, sizeof(scmd->sdb)); |
625 | scmd->request->next_rq = NULL; | ||
624 | 626 | ||
625 | if (sense_bytes) { | 627 | if (sense_bytes) { |
626 | scmd->sdb.length = min_t(unsigned, SCSI_SENSE_BUFFERSIZE, | 628 | scmd->sdb.length = min_t(unsigned, SCSI_SENSE_BUFFERSIZE, |
@@ -673,6 +675,7 @@ void scsi_eh_restore_cmnd(struct scsi_cmnd* scmd, struct scsi_eh_save *ses) | |||
673 | memcpy(scmd->cmnd, ses->cmnd, sizeof(scmd->cmnd)); | 675 | memcpy(scmd->cmnd, ses->cmnd, sizeof(scmd->cmnd)); |
674 | scmd->sc_data_direction = ses->data_direction; | 676 | scmd->sc_data_direction = ses->data_direction; |
675 | scmd->sdb = ses->sdb; | 677 | scmd->sdb = ses->sdb; |
678 | scmd->request->next_rq = ses->next_rq; | ||
676 | scmd->result = ses->result; | 679 | scmd->result = ses->result; |
677 | } | 680 | } |
678 | EXPORT_SYMBOL(scsi_eh_restore_cmnd); | 681 | EXPORT_SYMBOL(scsi_eh_restore_cmnd); |