Add new serialization of changed extent pages before persisting md. Iterate over active extent pages (not array !). When they are allocated but not yet present on disk - write them out. All extent pages in clean mutable data are assumed to be written out already. So there are two cases here: 1) Active mutable array is larger than clean All allocated extent pages should be written out. 2) Cluster allocation created new extent page Blob has to be thin provisioned and persist was called as part of cluster allocation. New extent page needs to be written out and EXTENT_TABLE allocated. Iteration is done over num_extent_pages instead of extent_pages_array_size, to prevent writting out too many extent pages when size of blob was made smaller. The two values come back in sync at the end of persist either way. Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Change-Id: I780819fd7f3c44e4cf5d71c188c642536d3cc320 Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/479851 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Paul Luse <paul.e.luse@intel.com> |
||
---|---|---|
.. | ||
blob_bs_dev.c | ||
blobstore.c | ||
blobstore.h | ||
Makefile | ||
request.c | ||
request.h | ||
zeroes.c |