[Stgt-devel] SCSI Return status path flow..
Pete Wyckoff
pw
Sat Feb 23 16:58:55 CET 2008
mark_harvey at symantec.com 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
More information about the stgt
mailing list