]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd/ReplicatedPG: Set data/omap digest after promote object.
authorJianpeng Ma <jianpeng.ma@intel.com>
Sun, 22 Mar 2015 13:48:42 +0000 (21:48 +0800)
committerJianpeng Ma <jianpeng.ma@intel.com>
Sun, 22 Mar 2015 13:48:42 +0000 (21:48 +0800)
For promote object from base tier, set data/omap digest if src have
data/omap content.
BTW, because considering performance we modify content don't recalc
data/omap digest(in some case we should reread all data), so maybe the
src don't have data/omap digest. But we don't care this.

Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
src/osd/ReplicatedPG.cc

index 5e9c144969cefa3319d4303633ac1d8f86e57f5d..5d8d7588a459e72173db6452768406a28b1acba4 100644 (file)
@@ -6833,6 +6833,11 @@ void ReplicatedPG::finish_promote(int r, CopyResults *results,
     }
     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)
+      tctx->new_obs.oi.set_data_digest(results->data_digest);
+    if (results->has_omap)
+      tctx->new_obs.oi.set_omap_digest(results->omap_digest);
 
     if (soid.snap != CEPH_NOSNAP) {
       if (!results->snaps.empty()) {