f62d5ccbe6
nvme_tcp_pdu_set_data_buf() has been used to process C2H and H2C for NVMe/TCP initiator. In this case, NVMe/TCP cuts out the part of the input data buffer and transfers the part, and repeats these cut and transfers until the whole data buffer is transferred. NVMe/TCP uses two SGLs, and use one to parse from the offset datao to datao + datal and another to append from the offset 0 to datal. However, the current nvme_tcp_pdu_set_data_buf() had used data_length as not data length of this transfer but total length of the whole transfers by mistake. Recently DIF library updated to properly handle very similar cases, and so this patch takes DIF library as a reference and corrects the implementation. The next patch will add UT code to verify the bug will be fixed. The code size is pretty large and so UT code is separated. Change-Id: Ibeed4de182b8b8740566e874e2757280dc21f9e8 Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/455623 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> Reviewed-by: Ziye Yang <ziye.yang@intel.com> |
||
---|---|---|
.. | ||
bdev | ||
blob | ||
blobfs | ||
conf | ||
copy | ||
env_dpdk | ||
event | ||
ftl | ||
ioat | ||
iscsi | ||
json | ||
jsonrpc | ||
log | ||
lvol | ||
nbd | ||
net | ||
notify | ||
nvme | ||
nvmf | ||
reduce | ||
rocksdb | ||
rpc | ||
scsi | ||
sock | ||
thread | ||
trace | ||
ut_mock | ||
util | ||
vhost | ||
virtio | ||
vmd | ||
Makefile |