7f139e549b
Search for md_page to be used as extent page started from 0, which is completely valid md_page. This page can be free when for example blob with id 0 was deleted and some other requested a new page for extent. There are already existing blobs that have extents pointing to 0, which means unallocated. Unfortunetly it means 0 can never mean md page 0. If that already occured for someone, this extent page was already lost during blob/bs reload and nothing can be done. With this in mind following assumptions are made for extent pages: - 0 means unallocated extent page - UINT32_MAX means we ran out of md pages, and should not be persisted - [NEW] extent page can never occupy md page 0 That last one is new addition in this patch. bs_allocate_cluster will now always try to find md page from 1 or higher. Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Change-Id: Ia17ce5bbca2fab4fb4487e4e263f3a0aa120bf17 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/4314 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> |
||
---|---|---|
.. | ||
blob_bs_dev.c | ||
blobstore.c | ||
blobstore.h | ||
Makefile | ||
request.c | ||
request.h | ||
spdk_blob.map | ||
zeroes.c |