Re: [PATCH v2 0/3] Include protection information in transport header

Nicholas A. Bellinger
2014-06-11T21:36:09Z

On Wed, 2014-06-11 at 12:09 +0300, Sagi Grimberg wrote:
> At the SCSI transport level, there is no distinction between
> user data and protection information. Thus, iscsi header field
> "expected data transfer length" should include protection
> information.
>
> Patch #1 introduces scsi helper scsi_transfer_length which computes
> wire transfer byte count.
>
> Patch #2 modifies iscsi initiator to set correct wire transfer length
> in iscsi header data_length field (and modifies iser accordingly).
>
> Patch #3 modifies target core to re-calculate the pure data length
> in case of PI presence over the wire (and modifies loopback transport
> to align with other transports).
>
> Changes from v1:
> - scsi_cmnd: Rewrite scsi_transfer_length as MKP suggested
> - Target/sbc: re-calculate the data_length in case PI exists
> on the wire (instead od deacrease data -= prot)
>
> Changes from v0:
> - Introduce scsi helpers to compute correct transfer length in the
> presence of protection information.
> - Modify iscsi to set correct transfer length using scsi helpers
> - Modify loopback transport to set correct transfer length using
> scsi helpers
>
> Sagi Grimberg (3):
> scsi_cmnd: Introduce scsi_transfer_length helper
> libiscsi, iser: Adjust data_length to include protection information
> TARGET/sbc,loopback: Adjust command data length in case pi exists on
> the wire
>
> drivers/infiniband/ulp/iser/iser_initiator.c | 34 +++++++------------------
> drivers/scsi/libiscsi.c | 18 +++++++-------
> drivers/target/loopback/tcm_loop.c | 15 +++++++++--
> drivers/target/target_core_sbc.c | 15 ++++++++++-
> include/scsi/scsi_cmnd.h | 17 +++++++++++++
> 5 files changed, 61 insertions(+), 38 deletions(-)
>

Ok, I've applied these to for-next, but let's see what MKP recommends
for patch #3 wrt to recalculating cmd->data_length.

Thanks Sagi!

--nab