Spdk/lib
Alexey Marchuk 95fc1ac759 nvmf: Rework qpair disconnect when subsystem is removed
When we iterate qpairs that belong to a subsystem
and try to disconnect them, there is a chance that
some qpair can be disconnected on transport level,
e.g. the initiator may receive a disconnect for
the first qpair and disconnect others. That may lead
to a dead loop when we call spdk_nvmf_qpair_disconnect
with a callback, the callback is called immediatelly
and tries to disconnect the qpair again.

To solve this problem, move part of nvmf_poll_group_remove_subsystem
function to another function nvmf_poll_group_remove_subsystem_msg
which disconnects all qpair at once without any callback
and calls itself via thread_send_msg untill all qpairs are
disconnected.

Fixes github issue #1780

Change-Id: I1000cda73e6164917fc13f7f374366af90571b99
Signed-off-by: Alexey Marchuk <alexeymar@mellanox.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/6597
Community-CI: Broadcom CI
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: <dongx.yi@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
2021-03-19 08:24:20 +00:00
..
accel lib/accel: Add the real chained crc32 support with the example. 2021-02-25 10:25:49 +00:00
bdev bdev/zone: add support for max active zones 2021-03-19 08:23:09 +00:00
blob so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
blobfs so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
conf so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
env_dpdk build: install generated pkg-config files 2021-03-17 11:10:45 +00:00
env_ocf lib/thead: print error log when create mempool or ring failed 2020-11-05 09:41:06 +00:00
event reactor: update core mode from master core 2021-03-18 14:49:41 +00:00
ftl so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
idxd idxd: update low level lib and poller to indicate busy/idle 2021-02-19 11:29:53 +00:00
ioat so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
iscsi lib/iscsi: Call iscsi_reject() in return statements in iscsi_pdu_hdr_op_data() 2021-03-03 08:17:33 +00:00
json so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
jsonrpc so_ver: increase all major versions 2021-02-05 14:43:47 +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 nbd: get nbd_stop procedure in async 2021-03-12 08:21:00 +00:00
net so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
notify so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
nvme lib/opal: remove deprecated spdk_opal_supported() 2021-03-18 14:43:08 +00:00
nvmf nvmf: Rework qpair disconnect when subsystem is removed 2021-03-19 08:24:20 +00:00
rdma rdma: Add statistics per qpair 2021-03-01 10:17:13 +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 scsi: relax spdk_scsi_task_gather_data assert 2021-03-09 08:53:21 +00:00
sock sock: introduce SO_INCOMING_CPU to get placement_id 2021-03-09 08:53:52 +00:00
thread so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
trace so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
ut_mock so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
util lib/util/math.c: improve portability 2021-02-10 08:44:01 +00:00
vfio_user vfio_user_pci: put close(device->fd) in cleanup. 2021-03-18 13:17:35 +00:00
vhost lib:vhost Add version check when use RTE_VHOST_USER_ASYNC_COPY in 21.01 2021-02-11 08:40:31 +00:00
virtio so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
vmd so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
Makefile NVMe/vfio-user: add initial version vfio-user transport to NVMe driver 2021-01-21 05:00:18 +00:00