numam-spdk/include/spdk
Tomasz Zawadzki 413d25b036 bdev_module: add async fini_start()
fini_start() is called for each bdev module before
iterating over all unclaimed bdevs to unregister them.
This allows bdev modules to behave differently during
each such unregister. Ex. unloading lvol store when
all lvol bdevs on it are unregistered.

Another use of this callback is to unclaim all bdevs
that can be at that point. Especially ones that will
not receive callback due to no bdev registered.
Ex. offline raid bdev, when some underlying bdevs are missing.

fini_start() being synchronous does not help in cases
where to release claim on the bdev, an asynchronous operation
is required. Ex. lvol store with no bdevs present, requires
async lvs unload to be called.

This patch adds async_fini_start flag for the bdev modules,
to be used when async fini_start is required. When done,
bdev module has to call spdk_bdev_module_finish_start_done().

Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Change-Id: I63438b325d4cc53fd236bf9ff143abf6bdd81c49
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/9094
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
2021-08-23 08:49:56 +00:00
..
accel_engine.h lib/accel: name crc function param for consistency 2021-07-15 21:04:08 +00:00
assert.h include: move standard includes into spdk/stdinc.h 2017-05-08 10:11:01 -07:00
barrier.h barrier: cleanup the file 2019-03-15 19:32:55 +00:00
base64.h util/base64: Extend b64 decode to calculate exact len 2020-02-03 11:39:49 +00:00
bdev_module.h bdev_module: add async fini_start() 2021-08-23 08:49:56 +00:00
bdev_zone.h bdev/zone: add support for get num zones 2021-04-26 16:16:42 +00:00
bdev.h bdev: Add extended versions of readv/writev 2021-08-20 07:26:10 +00:00
bit_array.h util: added bit array bitmask load, store and clear 2018-12-14 15:34:53 +00:00
bit_pool.h util: add spdk_bit_pool 2020-09-15 07:12:44 +00:00
blob_bdev.h module/blob: remove deprecated spdk_bdev_create_bs_dev/from_desc() 2021-03-05 08:33:45 +00:00
blob.h blob: cleanup Doxygen comments 2021-03-30 11:45:50 +00:00
blobfs_bdev.h blobfs/fuse: put FUSE code in module blobfs_bdev 2019-10-15 16:25:09 +00:00
blobfs.h blobfs: cleanup Doxygen comments 2021-03-30 11:45:50 +00:00
conf.h lib/conf: allow multiple sections with same name 2020-07-22 12:24:08 +00:00
cpuset.h cpuset: Expose internal of struct spdk_cpuset in header file 2019-07-04 00:30:22 +00:00
crc16.h util/crc16: Add spdk_crc16_t10dif_copy to use in read strip and write insert 2018-12-20 17:52:29 +00:00
crc32.h util/crc32c: Add spdk_crc32c_iov_update. 2021-06-02 11:37:17 +00:00
dif.h dif: Add spdk_dix_remap_ref_tag to remap ref. tag for separate metadata payload 2019-07-11 11:14:22 +00:00
dma.h dma: Introduce memory domain 2021-08-20 07:26:10 +00:00
endian.h include: move standard includes into spdk/stdinc.h 2017-05-08 10:11:01 -07:00
env_dpdk.h env: add a new function for printing memory layout 2019-12-13 11:05:57 +00:00
env.h env: only pass failing address to spdk_pci_error_handler 2021-06-15 08:34:28 +00:00
event.h event: Move RPC server initialization to init 2021-05-26 09:13:34 +00:00
fd_group.h interrupt: new fd_group in lib/util 2020-10-23 16:23:48 +00:00
fd.h include/fd.h: add comments for pubclic APIs 2018-01-04 12:12:10 -05:00
file.h util: add a new file operation API 2019-05-15 18:54:27 +00:00
ftl.h lib/ftl: Create l2p on l2p_path file if set in config 2020-03-06 10:28:21 +00:00
gpt_spec.h bdev/gpt: dump partition name 2017-07-12 18:12:52 -04:00
histogram_data.h histogram: add handling for datapoint == 0 2021-05-19 07:50:28 +00:00
idxd.h idxd/rpc: Revise the rpc function to use kernel or user driver 2021-07-13 17:22:30 +00:00
init.h event: Move json config loading to init 2021-05-26 09:13:34 +00:00
ioat_spec.h ioat_spec: fix gcc9 warning 2019-06-17 14:09:03 +00:00
ioat.h lib/ioat: add mew API to get the max # of descriptors supported 2020-07-23 22:26:39 +00:00
iscsi_spec.h iscsi: fix layout of logout request reason field 2017-09-22 16:11:11 -04:00
json.h json/json.h: add note on JSON objects and arrays 2021-07-30 08:17:43 +00:00
jsonrpc.h jsonrpc: cleanup Doxygen comments 2021-03-30 11:45:50 +00:00
likely.h include: move standard includes into spdk/stdinc.h 2017-05-08 10:11:01 -07:00
log.h log: add an API to return syslog level based on SPDK's log level 2021-08-12 12:57:39 +00:00
lvol.h lvol: ensure enum for lvol clear method is the same as blobstore 2019-02-28 20:50:27 +00:00
memory.h memory.h: move to public headers 2020-03-19 08:50:45 +00:00
mmio.h mmio: add functions for 1 and 2 byte I/O accesses 2017-10-13 10:46:00 -04:00
nbd.h nbd: Use async manner to stop nbd device. 2020-12-28 14:05:15 +00:00
notify.h lib/notify: rename spdk_notify_get_events to spdk_notify_foreach_event 2019-05-07 06:11:27 +00:00
nvme_intel.h nvme: pad struct spdk_nvme_intel_marketing_description_page 2019-06-05 02:46:50 +00:00
nvme_ocssd_spec.h ocssd: add chunk notification log struct 2018-09-27 01:30:45 +00:00
nvme_ocssd.h ocssd: add chunk notification log struct 2018-09-27 01:30:45 +00:00
nvme_spec.h nvme: add ONCS definition 2021-08-13 01:25:07 +00:00
nvme_zns.h nvme: add function to get ZNS max active zones 2021-02-24 13:06:32 +00:00
nvme.h nvme/pcie: defer bad vtophys to completion context 2021-08-20 07:27:09 +00:00
nvmf_cmd.h lib/nvmf: Support custom admin cmd handler for abort 2020-07-24 07:25:47 +00:00
nvmf_fc_spec.h nvmf/fc: FC Priority tagging and VMID support. 2021-01-14 16:18:25 +00:00
nvmf_spec.h nvmf: remove min number of admin queue entries from spec file 2020-03-12 09:04:18 +00:00
nvmf_transport.h nvmf: Add commit parameter to zcopy end operation 2021-07-27 14:53:39 +00:00
nvmf.h lib/nvmf: removed deprecated stats API 2021-07-23 07:10:03 +00:00
opal_spec.h nvme/opal: use static locking ranges table 2020-03-25 07:52:28 +00:00
opal.h lib/opal: remove deprecated spdk_opal_supported() 2021-03-18 14:43:08 +00:00
pci_ids.h nvme: add quirks for new RedHat QEMU NVMe dev/vendor ID 2021-06-11 07:22:10 +00:00
pipe.h pipe: Add a utility for buffering data from sockets 2019-11-20 09:35:32 +00:00
queue_extras.h include: remove util.h include from queue_extras.h 2021-04-14 07:25:21 +00:00
queue.h Include: Test for __linux__ 2020-11-19 09:53:21 +00:00
reduce.h lib/reduce: change and move the max IOVEC define for reduce 2019-07-29 04:36:59 +00:00
rpc.h rpc: add spdk_rpc_verify_methods() 2019-11-06 15:19:48 +00:00
scsi_spec.h scsi: fix SCSI reservation typos 2019-05-30 21:42:36 +00:00
scsi.h scsi: add bdev resize callback support 2020-09-28 08:33:18 +00:00
sock.h sock: Deprecate enable_zerocopy_send in sock_impl_set_options RPC 2021-04-27 08:13:32 +00:00
stdinc.h util: add zipf random number generator 2021-05-17 11:29:52 +00:00
string.h string: spdk_strtol to delegate additional error checking 2019-01-29 00:10:57 +00:00
thread.h thread: Make the definition of struct spdk_io_channel private 2021-06-25 05:01:45 +00:00
trace.h lib/trace: reduce trace entry size to 32B 2021-07-07 09:43:37 +00:00
tree.h util: rename RB_ROOT into _RB_ROOT 2021-06-04 22:46:40 +00:00
util.h util: Add macro SPDK_SIZEOF_MEMBER to get size of a member of a struct 2021-07-15 07:16:22 +00:00
uuid.h util/uuid: add a new uuid copy API. 2018-12-06 22:25:09 +00:00
version.h version: SPDK 21.10 pre 2021-07-23 10:34:01 +00:00
vfio_user_pci.h NVMe/vfio-user: add initial version vfio-user transport to NVMe driver 2021-01-21 05:00:18 +00:00
vfio_user_spec.h libvfio-user: update submodule 2021-06-22 23:42:02 +00:00
vhost.h lib/vhost: Remove and inline spdk_vhost_blk_get_dev 2020-06-08 09:28:27 +00:00
vmd.h lib/vmd: detach devices during shutdown 2020-02-04 16:50:25 +00:00
zipf.h util: add zipf random number generator 2021-05-17 11:29:52 +00:00