Spdk/lib
lorneli b4d3066890 nvmf/rdma: defer qp destruction until nvmf layer closes qp
Currently rqpair will be destroyed directly in ibv_poll_cq path
if it has been drained, regardless of whether there are outstanding
I/Os issued to bdev layer. So after outstanding I/Os completing,
spdk_nvmf_rdma_close_qpair will be called from nvmf layer, accessing
a destroyed qp.

This path defers qp destruction in nvmf_rdma_destroy_drained_qpair
func until nvmf layer closes qp.

Fixes 851

Change-Id: I8bcce66f8053ddb105702ac603d5d73af54bdcfc
Signed-off-by: lorneli <lorneli@163.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/461237
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Seth Howell <seth.howell@intel.com>
Reviewed-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2019-07-23 19:35:16 +00:00
..
bdev lib/ftl: Remove buffer alignment requirements 2019-07-23 04:00:05 +00:00
blob blobstore: fix unused variable warning on non-debug builds 2019-07-16 01:20:30 +00:00
blobfs blobfs: make internal asynchronous APIs as public APIs 2019-06-28 09:50:50 +00:00
conf string: spdk_strtol to delegate additional error checking 2019-01-29 00:10:57 +00:00
copy jsonrpc: don't check returned value from spdk_jsonrpc_begin_result() 2019-07-22 05:13:30 +00:00
env_dpdk env: define minimum alignment for dma-able memory 2019-07-23 04:00:05 +00:00
event jsonrpc: don't check returned value from spdk_jsonrpc_begin_result() 2019-07-22 05:13:30 +00:00
ftl lib/ftl: Remove separate dma_buf allocation in band 2019-07-23 04:00:05 +00:00
ioat ioat: allocate device struct using regular calloc 2019-04-09 06:30:42 +00:00
iscsi jsonrpc: don't check returned value from spdk_jsonrpc_begin_result() 2019-07-22 05:13:30 +00:00
json json_util: fix typo in debug message. 2019-05-31 14:39:53 +00:00
jsonrpc jsonrpc: always allocate response for request 2019-07-19 20:56:54 +00:00
log log: optimize spdk_log() when logging is disabled 2019-07-23 00:42:24 +00:00
lvol lvol: Fix for lvol failed deletion flow 2019-04-02 19:23:22 +00:00
nbd jsonrpc: don't check returned value from spdk_jsonrpc_begin_result() 2019-07-22 05:13:30 +00:00
net jsonrpc: don't check returned value from spdk_jsonrpc_begin_result() 2019-07-22 05:13:30 +00:00
notify lib/notify: rename spdk_notify_get_events to spdk_notify_foreach_event 2019-05-07 06:11:27 +00:00
nvme opal: Fix memory leakage 2019-07-22 04:32:59 +00:00
nvmf nvmf/rdma: defer qp destruction until nvmf layer closes qp 2019-07-23 19:35:16 +00:00
reduce lib/reduce: use global zero buffer instead of zeroing scratch buffer 2019-07-18 03:21:59 +00:00
rocksdb RocksDB: Remove static and assert for SpdkInitializeThread 2019-07-05 04:19:11 +00:00
rpc jsonrpc: don't check returned value from spdk_jsonrpc_begin_result() 2019-07-22 05:13:30 +00:00
scsi jsonrpc: don't check returned value from spdk_jsonrpc_begin_result() 2019-07-22 05:13:30 +00:00
sock sock: Add the socket priority setting function. 2019-07-18 04:09:37 +00:00
thread thread: Assign not pointer but instance of spdk_cpuset in struct spdk_thread 2019-07-04 00:30:22 +00:00
trace jsonrpc: don't check returned value from spdk_jsonrpc_begin_result() 2019-07-22 05:13:30 +00:00
ut_mock thread: Eliminate use of pthread_self and thread_ids 2019-01-15 16:53:12 +00:00
util dif: Add spdk_dix_remap_ref_tag to remap ref. tag for separate metadata payload 2019-07-11 11:14:22 +00:00
vhost jsonrpc: don't check returned value from spdk_jsonrpc_begin_result() 2019-07-22 05:13:30 +00:00
virtio lib/virtio: change the definition of cookie 2019-06-26 08:03:37 +00:00
vmd lib/vmd: Clear prefetch base and limit registers 2019-07-22 20:02:54 +00:00
Makefile configure: unset CONFIG_VHOST on BSD 2019-07-16 11:06:03 +00:00