}
ctx->delta_stats.num_wr++;
- ctx->delta_stats.num_bytes -= oi.size;
+ if (soid.is_snap()) {
+ assert(ctx->obc->ssc->snapset.clone_overlap.count(soid.snap));
+ ctx->delta_stats.num_bytes -= ctx->obc->ssc->snapset.get_clone_bytes(soid.snap);
+ } else {
+ ctx->delta_stats.num_bytes -= oi.size;
+ }
oi.size = 0;
// cache: writeback: set whiteout on delete?
tctx->discard_temp_oid = results->temp_oid;
}
tctx->new_obs.oi.size = results->object_size;
- tctx->delta_stats.num_bytes += results->object_size;
tctx->new_obs.oi.category = results->category;
tctx->new_obs.oi.user_version = results->user_version;
assert(obc->ssc->snapset.clone_size.count(soid.snap));
assert(obc->ssc->snapset.clone_size[soid.snap] ==
results->object_size);
+ assert(obc->ssc->snapset.clone_overlap.count(soid.snap));
+
+ tctx->delta_stats.num_bytes += obc->ssc->snapset.get_clone_bytes(soid.snap);
+ } else {
+ tctx->delta_stats.num_bytes += results->object_size;
}
}