Re: [PATCH v2 1/3] scsi_cmnd: Introduce scsi_transfer_length helper

Sagi Grimberg
2014-06-25T10:32:39Z

On 6/25/2014 11:48 AM, Sagi Grimberg wrote:

<SNIP>
>
>> I made the patch below which should fix both bidi
>> support in iscsi and also WRITE_SAME (and similar commands) support.
>
> I'm a bit confused, for all commands (bidi or not) the iscsi header
> data_length
> should describe the scsi_data_buffer length, bidi information will lie
> in AHS header.
> (in case bidi will ever co-exist with PI, we might need another helper
> that will look
> in req->special + PI, something like scsi_bidi_transfer_length)
>
> So why not keep scsi_transfer_length to work on sdb length (take
> scsi_bufflen(scmnd) or
> scsi_out(scmnd)->length as MKP suggested) and that's it - don't touch
> libiscsi.
>
> Let me test that.
>

So I tested a bidirectional command using:
$ sg_raw --infile=/root/filex --send=1024 --request=1024
--outfile=/root/filex "/dev/bsg/7:0:0:0" 53 00 00 00 00 00 00 00 02 00

And I see:
kernel: session1: iscsi_prep_scsi_cmd_pdu iscsi prep [bidirectional cid
0 sc ffff880468ca1e00 cdb 0x53 itt 0x16 len 1024 bidi_len 1024 cmdsn 223
win 64]

This confirms what I wrote above, so AFAICT no additional fix is
required for libiscsi wrt bidi commands support.

Mike?

Sagi.