> 
> 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

Reply via email to