numam-spdk/lib
Jim Harris 0441ffcc05 nbd: do not free spdk_nbd_disk with io outstanding
There is a race condition here, where kernel could have
outstanding I/O to nbd device at the same time we terminate
the nbd application.  In this case, we cannot free the
spdk_nbd_disk since it contains the io structure that
will be referenced when the SPDK poller completes one
of those I/O.

Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: I1bde240af904957f4d2bfa358dc673105d266986

Reviewed-on: https://review.gerrithub.io/385927
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Ziye Yang <optimistyzy@gmail.com>
Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com>
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
2017-11-10 17:00:58 -05:00
..
bdev bdev/lvol: correct messages displayed on screen during tasting 2017-11-09 11:32:27 -05:00
blob bs_dev: Add notice log when device does not support unmap 2017-11-09 13:38:49 -05:00
blobfs blobfs: fix bstype debug prints 2017-10-17 16:26:02 -04:00
conf log: Use SPDK_ERRLOG in lieu of fprintf(stderr 2017-05-09 11:28:28 -07:00
copy env: return fd from spdk_pci_device_claim() 2017-11-03 18:48:33 -04:00
cunit include: Move the remainder of the code base to stdinc.h 2017-05-08 13:20:36 -07:00
env_dpdk env: return fd from spdk_pci_device_claim() 2017-11-03 18:48:33 -04:00
event event: create the ring on other available sockets 2017-11-10 13:03:31 -05:00
ioat copy: return 0 on success and appropriate errno on failure 2017-09-25 13:56:29 -04:00
iscsi iscsi, vhost, nvmf: allow running without config file 2017-11-03 18:42:53 -04:00
json json: add function to write UTF-16LE strings 2017-07-12 18:12:52 -04:00
jsonrpc log: rename SPDK_TRACELOG to SPDK_DEBUGLOG 2017-08-29 13:25:58 -04:00
log log: change spdk_trace_dump() to take a void * 2017-10-17 16:26:02 -04:00
lvol lvol: read lvols names on lvol store tasting 2017-11-02 13:59:48 -04:00
nbd nbd: do not free spdk_nbd_disk with io outstanding 2017-11-10 17:00:58 -05:00
net subsystem: remove fini return code 2017-10-10 10:56:34 -04:00
nvme nvme: add the traddr for the ctrlr in the failed state 2017-11-09 12:40:24 -05:00
nvmf nvmf: move poll groups to public API 2017-11-09 12:51:18 -05:00
rocksdb blob_bdev: hotremove support 2017-09-28 12:46:18 -04:00
rpc rpc: add get_rpc_methods RPC call 2017-08-01 13:43:14 -04:00
scsi scsi: use scsi_spec.h enums for VPD page numbers 2017-10-29 12:12:47 -04:00
trace lib: replace strerror with strerror_r 2017-08-15 16:47:01 -04:00
ut_mock test/mock: add pthread_self 2017-09-19 17:15:15 -04:00
util blob: defer calling unload callback until dev is destroyed 2017-09-26 19:10:28 -04:00
vhost vhost: exit the vhost app for error configuration 2017-11-03 17:39:24 -04:00
Makefile lvol: Logical volume implementation 2017-09-14 19:30:54 -04:00