Spdk/lib/blob
Tomasz Zawadzki f60b4a7e28 lib/blob: add EXTENT_TABLE descriptor to blobs
Added new descriptor SPDK_MD_DESCRIPTOR_TYPE_EXTENT_TABLE.

Extent Table will hold md page offsets for new Extent Page descriptor.
Entries in Extent Table are run-length encoded 0's as unallocated
Extent Page descriptors.

Additionally total number of clusters is persisted in each Extent
Table descriptor. This is because there is no guarantee that
last Extent Page of a blob will be allocated.
Even if number of Extents per Extent Page is always the same,
Extent Page can hold less Extents than that.

This patch does not add more metadata on disk right now.
Only added descriptor parsing/serialization and applicable fields
to store it in run time.

Following patches are going to implement TODO's added in this patch.

Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Change-Id: Iac5d8f00ddfc655c507bc26d69d7adf8495074e9
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/466920
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Paul Luse <paul.e.luse@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2020-01-27 18:06:43 +00:00
..
blob_bs_dev.c blobstore: allow I/O operations to use io unit size smaller than page size. 2018-10-04 21:35:24 +00:00
blobstore.c lib/blob: add EXTENT_TABLE descriptor to blobs 2020-01-27 18:06:43 +00:00
blobstore.h lib/blob: add EXTENT_TABLE descriptor to blobs 2020-01-27 18:06:43 +00:00
Makefile lib/blob: move bdev subdir under module directory. 2019-08-22 16:29:49 +00:00
request.c blob: fix scanbuild failures in this file. 2019-05-16 20:53:21 +00:00
request.h blob: remove unused internal functions 2018-08-30 03:41:01 +00:00
zeroes.c blob: return error for write_zeroes and unmap requests 2019-06-07 18:37:53 +00:00