Spdk/lib/iscsi
Shuhei Matsumoto ce60606dbc iscsi: Fix data digest degradation by restoring the original code
Due to the recent changes for non block size multiples write I/O,
the data digest feature was degraded. If Linux iSCSI host enables
data digest and tries to detect LU from SPDK iSCSI target, data
mismatch error is detected and the connection is disconnected
unexpectedly.

The cause was that pdu->data_valid_bytes was not set for non-write
response PDUs which have a data segment.

iscsi_pdu_calc_data_digest() has been used only for non-write response
PDUs. Hence we did not need to change iscsi_pdu_calc_data_digest().

Restore the original implementation of iscsi_pdu_calc_data_digest().

Additionally, to avoid future degradation, rename the related
functions to iscsi_pdu_calc_partial_data_digest() and
iscsi_pdu_calc_partial_data_digest_done(), and add comments for
clarification.

This fix was verified by the reporter.

Fixes #2029.

Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Change-Id: I6babcd1b56e79d3fa3cd26b2dfaad87a52788e63
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/8635
Reviewed-by: Ziye Yang <ziye.yang@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
2021-07-07 07:26:23 +00:00
..
conn.c lib/trace: don't pass zero as a non-argument 2021-06-28 16:17:35 +00:00
conn.h iscsi: Add the support for long text response. 2020-11-11 00:53:52 +00:00
init_grp.c subsystem/iscsi: remove legacy config support 2020-10-20 08:53:53 +00:00
init_grp.h subsystem/iscsi: remove legacy config support 2020-10-20 08:53:53 +00:00
iscsi_rpc.c iscsi: Set resource pool size to the predetermined values to run with little memory 2021-06-17 08:59:18 +00:00
iscsi_subsystem.c iscsi: Fix data digest degradation by restoring the original code 2021-07-07 07:26:23 +00:00
iscsi.c iscsi: Fix data digest degradation by restoring the original code 2021-07-07 07:26:23 +00:00
iscsi.h iscsi: Set resource pool size to the predetermined values to run with little memory 2021-06-17 08:59:18 +00:00
Makefile so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
md5.c lib/iscsi: Remove the "spdk_" prefix from internal APIs declared in md5.h 2020-04-20 07:38:29 +00:00
md5.h lib/iscsi: Remove the "spdk_" prefix from internal APIs declared in md5.h 2020-04-20 07:38:29 +00:00
param.c lib/iscsi: add a comment for iscsi_parse_params() 2021-03-26 21:06:15 +00:00
param.h lib/iscsi: Remove the "spdk_" prefix from internal APIs declared in param.h 2020-04-20 07:38:29 +00:00
portal_grp.c lib/iscsi: Add portal_group_resume() and add pause parameter to portal_group_open() 2020-11-24 08:20:37 +00:00
portal_grp.h lib/iscsi: Add portal_group_resume() and add pause parameter to portal_group_open() 2020-11-24 08:20:37 +00:00
spdk_iscsi.map subsystem/iscsi: remove legacy config support 2020-10-20 08:53:53 +00:00
task.c lib/iscsi: Merge multiple Data-OUT PDUs up to 64KB in a sequence 2021-04-19 12:47:40 +00:00
task.h lib/iscsi: Merge multiple Data-OUT PDUs up to 64KB in a sequence 2021-04-19 12:47:40 +00:00
tgt_node.c iscsi: get the member after the NULL check 2020-12-01 10:21:50 +00:00
tgt_node.h subsystem/iscsi: remove legacy config support 2020-10-20 08:53:53 +00:00