From: Yuri Weinstein Date: Tue, 3 Oct 2017 19:34:19 +0000 (-0700) Subject: Merge pull request #18061 from xiexingguo/wip-crc X-Git-Tag: v13.0.1~686 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=0480ec7b274d64c4cabba71abb0787c9775082d2;p=ceph.git Merge pull request #18061 from xiexingguo/wip-crc osd/PrimaryLogPG: do not set data/omap digest blindly Reviewed-by: Sage Weil --- 0480ec7b274d64c4cabba71abb0787c9775082d2 diff --cc src/osd/PrimaryLogPG.cc index 9c85f3b1694,a8d935f9255..643af5cb1c2 --- a/src/osd/PrimaryLogPG.cc +++ b/src/osd/PrimaryLogPG.cc @@@ -8407,17 -8291,18 +8415,22 @@@ void PrimaryLogPG::finish_promote(int r } 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));