numam-spdk/lib
Dariusz Stojaczyk b326e51219 bdev/virtio_blk: defer bdev destruct completion
Even after the bdev is removed, the underlying virtio
device may be still alive for some time. The user may
then try to recreate the virtio bdev and could technically
initialize a second simultaneous connection to a vhost
target. It does not cause any technical problems, but the
target may reject such connection if it reached a connection
cap or doesn't support more than one connection per target
(like SPDK vhost does as of today).

Since the fix is straightforward, here it is.

Note:
Virtio SCSI is already safe, because it uses a separate
completion callback to indicate virtio device destruction.

Change-Id: I2989780ef9b13c19d0432224ff4602a14be48315
Signed-off-by: Dariusz Stojaczyk <dariuszx.stojaczyk@intel.com>
Reviewed-on: https://review.gerrithub.io/420576
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
2018-07-31 01:13:07 +00:00
..
bdev bdev/virtio_blk: defer bdev destruct completion 2018-07-31 01:13:07 +00:00
blob blobstore: recalculate total clusters after reading super block 2018-07-27 16:23:50 +00:00
blobfs blobfs: add the check for cache_buffer 2018-07-26 23:56:36 +00:00
conf conf: don't strdup name if section already exist 2018-05-17 17:13:19 +00:00
copy copy/ioat: Add scan_ioat_copy_engine RPC 2018-06-14 03:54:42 +00:00
env_dpdk env_dpdk: delete all unnecessary files created by dpdk 18.05 2018-07-27 16:48:47 +00:00
event iscsi/rpc: fix several bugs of set_iscsi_options 2018-07-25 19:22:08 +00:00
ioat ioat: fix typo on IOAT_DEFAULT_ORDER comment 2018-07-05 16:24:56 +00:00
iscsi iscsi/rpc: fix several bugs of set_iscsi_options 2018-07-25 19:22:08 +00:00
json json: Add spdk_json_decode_uint16 2018-06-05 21:30:02 +00:00
jsonrpc jsonrpc: fix closed connection hadling 2018-06-08 18:11:18 +00:00
log log: add backtrace option 2018-07-25 15:48:25 +00:00
lvol lvol: remove destruct_req from lvol store 2018-07-26 21:55:36 +00:00
nbd thread: Replace #include of io_channel.h with thread.h 2018-06-12 15:24:07 +00:00
net net: split sock abstraction into lib/sock 2018-06-22 17:09:57 +00:00
nvme ocssd: apply ocssd strings into status arrays 2018-07-30 03:09:31 +00:00
nvmf nvmf: remove_subsystem now uses qpair_remove asynch api 2018-07-27 20:50:36 +00:00
rocksdb blobfs: change the return type of spdk_file_truncate 2018-07-26 01:42:17 +00:00
rpc rpc: Add option to get_rpc_methods RPC to output only currently usable RPCs 2018-05-04 17:45:48 +00:00
scsi iscsi: Support hot removal of LUN based on LUN open/close 2018-07-17 17:43:28 +00:00
sock net: split sock abstraction into lib/sock 2018-06-22 17:09:57 +00:00
thread util: Remove usage of abort from library code 2018-07-17 17:40:11 +00:00
trace app,lib: fix checking mmap return value 2018-03-30 16:18:34 -04:00
ut_mock test/mock: add pthread_self 2017-09-19 17:15:15 -04:00
util Clean up some incorrect Copyright statements 2018-07-30 16:29:38 +00:00
vhost vhost: clear desc, avail and used addresses on setting new mem table 2018-07-26 05:29:28 +00:00
virtio virtio: fix vq init error handling 2018-07-11 21:02:06 +00:00
Makefile test: remove spdk_cunit library 2018-07-06 18:35:03 +00:00