When both clone and snapshot had already extent pages corresponding to the same region in cluster map, the clone extent page was replaced with one from snapshot. This was incorrect and would result in loss of clusters from clones extent page. It did not occur in practice because all extent pages were rewritten anyway during md sync. Cluster map was correct so updated extent pages were too. Cluster map correctness is verified in UT _blob_inflate_rw(true), at the very end when checking data consistency of inflated blob. This patch writes out the updated extent page explicitly. So it would be possible to skip wirting out extent pages during md sync later in the series. Note 1) At this point in series the extent page is written here, and in blob persists. The later will be removed later in series. Note 2) Errors during updating extent pages are not accounted for, but neither does syncing them in blob persist. Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Change-Id: I7deac3c64299f33f8df49e860af1a16295c074e6 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/7438 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Community-CI: Mellanox Build Bot |
||
---|---|---|
.. | ||
blob_bs_dev.c | ||
blobstore.c | ||
blobstore.h | ||
Makefile | ||
request.c | ||
request.h | ||
spdk_blob.map | ||
zeroes.c |