iscsi-target: Fix sendpage breakage with proper padding+DataDigest iovec offsets
authorNicholas Bellinger <nab@linux-iscsi.org>
Fri, 16 Sep 2011 23:55:47 +0000 (16:55 -0700)
committerNicholas Bellinger <nab@linux-iscsi.org>
Fri, 16 Sep 2011 23:47:07 +0000 (23:47 +0000)
commit40b054970afcf067896d62cd6f7e617c62665304
tree5596f2b4fa1c1f41f599caf21bd5d10681ab152b
parent2ff017f5b4299e24a7f22d9a336dd162bf52bb54
iscsi-target: Fix sendpage breakage with proper padding+DataDigest iovec offsets

This patch fixes a bug in the iscsit_fe_sendpage_sg() transmit codepath that
was originally introduced with the v3.1 iscsi-target merge that incorrectly
uses hardcoded cmd->iov_data_count values to determine cmd->iov_data[] offsets
for extra outgoing padding and DataDigest payload vectors.

This code is obviously incorrect for the DataDigest enabled case with sendpage
offload, and this fix ensures correct operation for padding + DataDigest,
padding only, and DataDigest only cases.  The bug was introduced during a
pre-merge change in iscsit_fe_sendpage_sg() to natively use struct scatterlist
instead of the legacy v3.0 struct se_mem logic.

Cc: Andy Grover <agrover@redhat.com>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
drivers/target/iscsi/iscsi_target_util.c