Spdk/lib/blob
Mike Gerdts b47cee6c96 blob: add IO channels for esnap clones
The channel passed to blob IO operations is useful for tracking
operations within the blobstore and the bs_dev that the blobstore
resides on. Esnap clone blobs perform reads from other bs_devs and
require per-thread, per-bs_dev channels.

This commit augments struct spdk_bs_channel with a tree containing
channels for the external snapshot bs_devs. The tree is indexed by blob
ID. These "esnap channels" are lazily created on the first read from an
external snapshot via each bs_channel. They are removed as bs_channels
are destroyed and blobs are closed.

Change-Id: I97aebe5a2f3584bfbf3a10ede8f3128448d30d6e
Signed-off-by: Mike Gerdts <mgerdts@nvidia.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14974
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
2023-03-28 03:57:35 +00:00
..
blob_bs_dev.c blob: Add translate_lba operation 2022-12-08 12:54:54 +00:00
blobstore.c blob: add IO channels for esnap clones 2023-03-28 03:57:35 +00:00
blobstore.h blob: add IO channels for esnap clones 2023-03-28 03:57:35 +00:00
Makefile so_ver: increase all major versions 2023-01-24 08:37:21 +00:00
request.c blob: add IO channels for esnap clones 2023-03-28 03:57:35 +00:00
request.h blob: add IO channels for esnap clones 2023-03-28 03:57:35 +00:00
spdk_blob.map blob: add spdk_blob_is_esnap_clone 2023-03-22 09:39:29 +00:00
zeroes.c blob: Add translate_lba operation 2022-12-08 12:54:54 +00:00