[EMAIL PROTECTED] wrote on Fri, 22 Feb 2008 23:58 -0700:
> Re: Variable block reads READ(6)
> 
> When I return a "CHECK CONDITION" in response to a 'short block' read, I
> have not been able to figure out how to return the block of data read +
> the sense code with the 'Incorrect length' condition.
> 
> All I seem to get back is the 'CHECK CONDITION' sense information
> without the block of data.
> 
>  
> 
> No matter how long I look at the code, I haven't figured out the return
> path.

(Please don't send html mail.)

This recently changed.  Here's the trick:

        scsi_set_in_resid_by_actual(cmd, actual);

I.e. if the initiator asked to read "desired" bytes, but the target
could only provide "actual" bytes, this call will set the residual
to (desired - actual).  You still need to generate sense data and
return SAM_STAT_CHECK_CONDITION too, if this is required by ssc.
It's not always an error to underflow.

                -- Pete
_______________________________________________
Stgt-devel mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/stgt-devel

Reply via email to