c33840b7e6
This is an additional option that can be passed when creating a blob. When opts->enable_extent_pages is set to false (current default), only EXTENT_RLE should be persisted on sync. During blob load, when EXTENT_RLE is present in md, blob->extent_rle_found is set to true. When opts->enable_extent_pages is set to true, only EXTENT_TABLE and EXTENT_PAGES should be persisted on sync. During blob load, when EXTENT_TABLE is present in md, blob->extent_table_found is set to true. It is possible to find neither EXTENT_* descriptor when loading a blob. This means that blob length is 0 and EXTENT_RLE was supposed to be used. Yet none were persisted due to lack of clusters. In such case blob->use_extent_table is set to true after finishing blob load. When parsing metadata ends, if extent_table_found is set - then support for extent_table is enabled. All other cases disable it. At this time path for Extent Pages is not implemented, so it should not be used. Later in the series, it will become the default path for serialization. Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Change-Id: I2146da6130a0645e686ab02a3b5d2d86a7d35a1f Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/479853 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> |
||
---|---|---|
.. | ||
linux | ||
spdk | ||
spdk_internal | ||
Makefile |