Spdk/lib
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
..
accel lib/accel: add suport for batching copy + CRC32C command 2021-06-09 07:26:00 +00:00
bdev bdev: spdk_bdev_get_by_name() hold mutex itself while traversing bdev name tree 2021-07-05 14:46:30 +00:00
blob blobstore:fix memleak problem in blob_load_cpl() 2021-06-17 09:02:37 +00:00
blobfs lib/trace: record string arguments as (const char *) 2021-06-28 16:17:35 +00:00
conf so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
env_dpdk configure: Build against installed DPDK instance 2021-06-29 18:17:43 +00:00
env_ocf lib/thead: print error log when create mempool or ring failed 2020-11-05 09:41:06 +00:00
event scheduler_dynamic: consider any core for the thread 2021-06-28 16:18:19 +00:00
ftl lib/trace: don't format arg's name while registering a tpoint 2021-06-10 10:58:05 +00:00
idxd lib/idxd: update some func params for consistency 2021-06-29 00:46:25 +00:00
init event: Move json config loading to init 2021-05-26 09:13:34 +00:00
ioat ioat: fix potential double free problem in ioat_channel_start() 2021-06-16 09:00:37 +00:00
iscsi iscsi: Fix data digest degradation by restoring the original code 2021-07-07 07:26:23 +00:00
json so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
jsonrpc jsonrpc: use SOCK_NONBLOCK in socket() calls 2021-05-05 13:31:10 +00:00
log so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
lvol so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
nbd lib/nbd: refine nbd stop process 2021-06-15 08:49:10 +00:00
net net: deprecate library 2021-04-26 06:55:03 +00:00
notify so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
nvme lib/nvme: Do not retry aborts if ctrlr is failed. 2021-07-06 19:44:59 +00:00
nvmf nvmf: abort AERs when doing controller reset and shutdown 2021-07-06 19:36:04 +00:00
rdma include: remove util.h include from queue_extras.h 2021-04-14 07:25:21 +00:00
reduce so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
rocksdb build: use DEPDIRS variables to build SPDK_LIB_LIST 2020-12-18 09:40:01 +00:00
rpc so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
scsi lib/trace: don't pass zero as a non-argument 2021-06-28 16:17:35 +00:00
sock sock: Add new params to configure zcopy for server, client sockets 2021-04-27 08:13:32 +00:00
thread thread: Make the definition of struct spdk_io_channel private 2021-06-25 05:01:45 +00:00
trace lib/trace: don't pass zero as a non-argument 2021-06-28 16:17:35 +00:00
ut_mock so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
util util/crc32c: Add spdk_crc32c_iov_update. 2021-06-02 11:37:17 +00:00
vfio_user libvfio-user: update submodule 2021-06-22 23:42:02 +00:00
vhost vhost-blk: use device name for VIRTIO_BLK_T_GET_ID 2021-05-27 07:35:37 +00:00
virtio env: only pass failing address to spdk_pci_error_handler 2021-06-15 08:34:28 +00:00
vmd so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
Makefile event: Shift subsystem initialization code to a separate library 2021-05-24 10:12:50 +00:00