}
tctx->new_obs.oi.size = results->object_size;
tctx->new_obs.oi.user_version = results->user_version;
- // Don't care src object whether have data or omap digest
- if (results->object_size)
+ if (results->is_data_digest()) {
tctx->new_obs.oi.set_data_digest(results->data_digest);
- if (results->has_omap)
+ } else {
+ tctx->new_obs.oi.clear_data_digest();
+ }
+ if (results->is_omap_digest()) {
tctx->new_obs.oi.set_omap_digest(results->omap_digest);
+ } else {
+ tctx->new_obs.oi.clear_omap_digest();
+ }
tctx->new_obs.oi.truncate_seq = results->truncate_seq;
tctx->new_obs.oi.truncate_size = results->truncate_size;
+ if (results->has_extents()) {
+ tctx->new_obs.oi.set_flag(object_info_t::FLAG_EXTENTS);
+ tctx->new_obs.oi.extents = results->extents;
+ }
if (soid.snap != CEPH_NOSNAP) {
assert(obc->ssc->snapset.clone_snaps.count(soid.snap));