Spdk/include/spdk_internal
Ziye Yang e9be9df45f nvmf/tcp: Fix the potential issue of connection construction.
When we use async writev (e.g., lib io_uring), we find that
the callback of writev is executed after recving the new
data from the initiator, and this is possible.

For example, if the NVMe-oF TCP target receives the ic_req from the
initiator, and sendout the ic_resp, the state  of tqpair will change from
invalid to running until the callback is executed. And the data of ic_resp
is already sent to the initiator, and we receive the new command later. However,
we may still not get the call back function executed
(i.e, spdk_nvmf_tcp_send_icresp_complete). And it is possible
for using lib io_uring, I faced this issue when using lib uring.

And this patch can fix this issue.

Signed-off-by: Ziye Yang <ziye.yang@intel.com>
Change-Id: I7f4332522866d475e106ac6d36a8ec715133f0dc
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/472770
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Community-CI: Broadcom SPDK FC-NVMe CI <spdk-ci.pdl@broadcom.com>
2019-11-07 23:08:17 +00:00
..
assert.h include: Move the remainder of the code base to stdinc.h 2017-05-08 13:20:36 -07:00
copy_engine.h scripts/check_format: check for spaces before tabs 2018-03-05 11:09:13 -05:00
event.h event: add extern "C" wrappers to event.h 2019-08-28 20:21:03 +00:00
log.h iscsi: Dump PDU contents to know what PDU was sent in illegal state 2019-06-07 05:11:00 +00:00
lvolstore.h lvol: add option to change default data erase method 2019-01-23 22:25:37 +00:00
memory.h env: move VALUE_2MB defines into a new internal header 2019-01-13 00:47:26 +00:00
mock.h test: Add mocks for sendmsg and recvmsg 2019-11-01 17:56:16 +00:00
nvme_tcp.h nvmf/tcp: Fix the potential issue of connection construction. 2019-11-07 23:08:17 +00:00
sock.h sock/posix: Store pointer to group in sock 2019-10-15 16:35:09 +00:00
thread.h thread: Export spdk_set_thread() 2019-07-15 01:34:41 +00:00
utf.h utf.h: remove #include "spdk/json.h" 2018-01-31 14:37:16 -05:00
vhost_user.h virtio: export spec-defined structures into a separate header 2019-03-13 14:26:20 +00:00
virtio.h virtio: allow config read/write to fail 2018-07-05 20:47:38 +00:00