Spdk/lib
Andrey Kuzmin af034b6de4 bdev: unregister bdevs top-down during shutdown.
There are some use cases such as multipath and RAID expansion where a
vbdev could have been registered before one of its base bdevs.

Currently we unregister bdevs at shutdown in reverse order of their
registration.  Continue to do that in general, but skip any bdev that
is still claimed.  Any bdevs skipped in this way will eventually be
unregistered once any bdevs that have claimed it have completed
unregistration.

Change-Id: Iafde9558430bc5ce56e8608ef50bcb2b5fbfbf71
Signed-off-by: Andrey Kuzmin <akuzmin@jetstreamsoft.com>
Reviewed-on: https://review.gerrithub.io/432136
Reviewed-by: Jim Harris <james.r.harris@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>
Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com>
2018-11-20 22:49:23 +00:00
..
bdev bdev: unregister bdevs top-down during shutdown. 2018-11-20 22:49:23 +00:00
blob bit_array: return UINT32_MAX if no cleared bits found 2018-10-08 17:03:33 +00:00
blobfs blobfs: align rw buffer to lba of device underneath 2018-09-18 16:35:57 +00:00
conf conf: don't strdup name if section already exist 2018-05-17 17:13:19 +00:00
copy lib/copy: unregister copy engine on finish 2018-10-15 17:42:20 +00:00
env_dpdk vtophys: remove internal device refcount 2018-11-19 20:31:16 +00:00
event reactor: handle failure when getting reactor in spdk_reactor_get_tsc_stats() 2018-11-20 15:04:38 +00:00
ioat ioat: change the return type of ioat_channel_destruct() to be void 2018-09-18 22:41:00 +00:00
iscsi iscsi: change connection messages to DEBUGLOGs 2018-11-12 20:15:25 +00:00
json json: Use not C++ style comments // but C-style comments /* */ 2018-10-31 22:01:47 +00:00
jsonrpc jsonrpc client: move around functions so no forwad declaration is needed 2018-11-19 20:30:03 +00:00
log log: update tracelog usage message 2018-10-24 18:25:37 +00:00
lvol lvol: check spdk_lvol for NULL before dereferencing it 2018-11-20 15:01:57 +00:00
nbd nbd: Add a function to get the nbd path 2018-11-20 22:48:50 +00:00
net lib: fix typos in the lib directory 2018-08-24 17:15:12 +00:00
nvme nvme_pcie: re-probe the pci bus on hotplug event 2018-11-20 15:05:01 +00:00
nvmf nvme: Add the NVMe over fabrics TCP/IP transport support 2018-11-19 20:36:05 +00:00
reduce reduce: clean up a few items found during code review 2018-11-20 14:50:27 +00:00
rocksdb nvme: Add the NVMe over fabrics TCP/IP transport support 2018-11-19 20:36:05 +00:00
rpc rpc: add function to get the current RPC state 2018-11-08 23:04:50 +00:00
scsi scsi: Use not C++ style comments // but C-style comments /* */ 2018-10-31 22:01:47 +00:00
sock net: add asynchronous initialization and finish 2018-11-07 17:08:27 +00:00
thread lib/thread: check for NULL return on _get_thread() 2018-11-20 15:03:17 +00:00
trace trace: remove alias concept 2018-09-05 18:03:43 +00:00
ut_mock ut_mock: rename library from spdk_mock to ut_mock 2018-11-20 14:57:57 +00:00
util util: make spdk_parse_ip_addr return -EINVAL instead -1 2018-10-12 23:34:27 +00:00
vhost vhost/blk: check against hotremoved bdev in GET_CONFIG handler 2018-10-23 17:54:46 +00:00
virtio virtio: support dynamic memory registrations 2018-10-23 18:02:12 +00:00
Makefile reduce: add configure option 2018-11-08 00:01:47 +00:00