numam-spdk/include/spdk
Tomasz Kulasek d7e065be93 blobstore: clone-snapshot blobstore relations
This commit provides an API to obtain an information about
snapshot and clone relations.

The main objective is:

 1) Determinate if we can delete snapshot (if have some created
    clones),

 2) Provide an information about parent/children nodes to the upper
    layer (e.g. lvol)

Realization:

 1) Structure parent-children is stored in the blob store object
    and updated on:

     a) blob store load,

     b) blob create/delete,

 2) Full information about parent-children is provided via new API:
    spdk_blob_get_parent() and spdk_blob_get_children(),

Note:

    While we don't store an information about these relations in the
    blob store, we need to open all blobs on blob store load to create
    it. It should be considered that it have an impact on the blobstore
    loading performance.

Change-Id: Ie0237fa5b93af01aa73d1f68ac1694e653fb75e5
Signed-off-by: Tomasz Kulasek <tomaszx.kulasek@intel.com>
Reviewed-on: https://review.gerrithub.io/405025
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Maciej Szwed <maciej.szwed@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com>
2018-04-20 15:22:53 -04:00
..
assert.h include: move standard includes into spdk/stdinc.h 2017-05-08 10:11:01 -07:00
barrier.h barrier: added spdk_smp_*mb to sync between cores 2017-11-29 10:51:42 -05:00
bdev.h bdev/qos: add the QoS information on RPC get_bdevs interface 2018-04-20 13:34:44 -04:00
bit_array.h include/bitarray: add comments for public APIs 2018-03-07 19:12:19 -05:00
blob_bdev.h bdev: rename spdk_bdev_module_if -> spdk_bdev_module 2018-03-13 00:55:12 -04:00
blob.h blobstore: clone-snapshot blobstore relations 2018-04-20 15:22:53 -04:00
blobfs.h include/blobfs.h: add comments for public APIs 2018-03-29 22:52:18 -04:00
conf.h include/conf: add comments for public APIs 2018-02-26 11:59:09 -05:00
copy_engine.h copy_engine: Support dump config text for IOAT config 2018-04-04 12:18:31 -04:00
cpuset.h include/cpuset.h: add comments for public APIs 2018-03-08 11:33:50 -05:00
crc16.h util/crc16: add crc16 library support and unit tests 2017-12-20 15:12:26 -05:00
crc32.h include: wrap header files in extern "C" for c++ 2017-12-07 19:13:47 -05:00
endian.h include: move standard includes into spdk/stdinc.h 2017-05-08 10:11:01 -07:00
env.h include/env.h: add comments for public APIs 2018-04-03 15:26:10 -04:00
event.h app: Add "NoPci" to command line options 2018-04-16 12:42:15 -04:00
fd.h include/fd.h: add comments for pubclic APIs 2018-01-04 12:12:10 -05:00
gpt_spec.h bdev/gpt: dump partition name 2017-07-12 18:12:52 -04:00
histogram_data.h util: enable dynamic spdk_histogram_data sizing 2017-12-29 14:20:48 -05:00
io_channel.h io_channel: add return value to pollers 2018-03-13 11:16:20 -04:00
ioat_spec.h include: move standard includes into spdk/stdinc.h 2017-05-08 10:11:01 -07:00
ioat.h include/ioat.h: add comments for public APIs 2018-03-14 13:02:06 -04:00
iscsi_spec.h iscsi: fix layout of logout request reason field 2017-09-22 16:11:11 -04:00
json.h json: add va_arg versions for write_string and write_named_string 2018-02-23 15:27:16 -05:00
jsonrpc.h include/json_rpc.h: add comments for public APIs 2018-03-15 19:34:51 -04:00
likely.h include: move standard includes into spdk/stdinc.h 2017-05-08 10:11:01 -07:00
log.h include/log.h: add comments for public APIs 2018-04-09 13:13:59 -04:00
lvol.h lvol: add snapshots and clones 2018-04-10 13:46:09 -04:00
mmio.h mmio: add functions for 1 and 2 byte I/O accesses 2017-10-13 10:46:00 -04:00
nbd.h include/nbd: add comments for public APIs 2018-04-06 16:16:19 -04:00
net.h include/net.h: remove non public functions to private header file 2018-04-11 12:10:14 -04:00
nvme_intel.h include: move standard includes into spdk/stdinc.h 2017-05-08 10:11:01 -07:00
nvme_spec.h nvme_spec: update Firmware Slot Info log page 2018-03-30 16:26:10 -04:00
nvme.h nvme: Use active namespace list for enumerating namespaces 2018-04-02 17:17:40 -04:00
nvmf_spec.h scripts/check_format: check for spaces before tabs 2018-03-05 11:09:13 -05:00
nvmf.h nvmf: make spdk_nvmf_subsystem_remove_ns asynchronous 2018-04-18 15:41:00 -04:00
pci_ids.h bdev/virtio: added vhost-blk initiator 2018-03-02 13:41:38 -05:00
queue_extras.h scripts/check_format: check for spaces before tabs 2018-03-05 11:09:13 -05:00
queue.h Add extern "C" wrapper to all public headers 2016-02-12 07:52:35 -07:00
rpc.h rpc: reword doc comments 2018-04-12 13:31:45 -04:00
scsi_spec.h scripts/check_format: check for spaces before tabs 2018-03-05 11:09:13 -05:00
scsi.h scripts/check_format: check for spaces before tabs 2018-03-05 11:09:13 -05:00
sock.h sock: add sock_group abstraction 2018-02-13 19:25:22 -05:00
stdinc.h build: Automatically detect use of POSIX includes 2017-05-08 13:20:37 -07:00
string.h util: add spdk_mem_all_zero() function 2018-02-23 10:05:32 -05:00
trace.h lib: Return instead of exit in trace 2018-03-13 00:53:35 -04:00
util.h util: add spdk_u32_is_pow2() function 2017-08-11 19:36:30 -04:00
uuid.h include/uuid.h: add comments for public APIs 2018-04-10 15:44:17 -04:00
version.h version: v18.04-pre 2018-02-01 11:34:43 -05:00
vhost.h vhost: add JSON config dump 2018-04-16 19:27:33 -04:00