> > On 11/1/10 9:53 PM, Yi Zou wrote: > > no need to do REC if status is received already > > It's possible we didn't get all the data. > Is that checked for in this case? > Did you test with a tape READ where some data was dropped? > I think that's important. > > Joe I did not do a test on tape, I'll see if I can simulate the tape device and run the test. Since FC_SRB_RCV_STATUS is only set in fc_fcp_resp, so it should already update the fsp with the correct status_code and let scsi-ml retry if some data is dropped. If nothing is received, then scsi_times_out should take care of letting fcp abort the i/o and retry.
yi > > > > > Signed-off-by: Yi Zou <[email protected]> > > --- > > > > drivers/scsi/libfc/fc_fcp.c | 6 +++--- > > 1 files changed, 3 insertions(+), 3 deletions(-) > > > > diff --git a/drivers/scsi/libfc/fc_fcp.c b/drivers/scsi/libfc/fc_fcp.c > > index b277382..651447f 100644 > > --- a/drivers/scsi/libfc/fc_fcp.c > > +++ b/drivers/scsi/libfc/fc_fcp.c > > @@ -1373,10 +1373,10 @@ static void fc_fcp_timeout(unsigned long data) > > > > fsp->state |= FC_SRB_FCP_PROCESSING_TMO; > > > > - if (rpriv->flags & FC_RP_FLAGS_REC_SUPPORTED) > > - fc_fcp_rec(fsp); > > - else if (fsp->state & FC_SRB_RCV_STATUS) > > + if (fsp->state & FC_SRB_RCV_STATUS) > > fc_fcp_complete_locked(fsp); > > + else if (rpriv->flags & FC_RP_FLAGS_REC_SUPPORTED) > > + fc_fcp_rec(fsp); > > else > > fc_fcp_recovery(fsp, FC_TIMED_OUT); > > fsp->state &= ~FC_SRB_FCP_PROCESSING_TMO; > > > > _______________________________________________ > > devel mailing list > > [email protected] > > http://www.open-fcoe.org/mailman/listinfo/devel _______________________________________________ devel mailing list [email protected] http://www.open-fcoe.org/mailman/listinfo/devel
