Spdk/module
Mike Gerdts 421fb11094 blob_bdev: defer free until all channels destroyed
To avoid races that lead to use-after-free errors during esnap device
hot add/remove, we need a way to ensure that the destroy callback does
not free a bs_dev until all consumers are done.

This adds reference counting to the create_channel() and
destroy_channel() callbacks. The reference couunt is initialized to 1
and is decremented by destroy(). The destroy() and destroy_channel()
callbacks are updated to free the bs_dev only when the reference count
drops to 0.

Signed-off-by: Mike Gerdts <mgerdts@nvidia.com>
Change-Id: Ie0b873717e431b33ce6548f878643dbc66d4f956
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/16422
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2023-03-28 03:57:35 +00:00
..
accel lib/accel: removed references to ACCEL_FLAG_PERSISTENT 2023-03-03 11:20:03 +00:00
bdev bdev/ocf: Remove cleaner queue, use mngt queue instead 2023-03-22 16:03:25 +00:00
blob blob_bdev: defer free until all channels destroyed 2023-03-28 03:57:35 +00:00
blobfs module/blobfs: Use error_response() rather than bool_response(false) for JSON RPCs 2023-01-31 21:40:09 +00:00
env_dpdk so_ver: increase all major versions 2023-01-24 08:37:21 +00:00
event nvmf: add spdk_nvmf_request_copy_*_buf() 2023-02-13 13:50:51 +00:00
scheduler so_ver: increase all major versions 2023-01-24 08:37:21 +00:00
sock module/uring: report actual error code from getaddrinfo() 2023-03-10 16:44:37 +00:00
vfu_device so_ver: increase all major versions 2023-01-24 08:37:21 +00:00
Makefile update Intel copyright notices 2022-11-10 08:28:53 +00:00