]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
Merge pull request #18061 from xiexingguo/wip-crc
authorYuri Weinstein <yuri.weinstein@gmail.com>
Tue, 3 Oct 2017 19:34:19 +0000 (12:34 -0700)
committerGitHub <noreply@github.com>
Tue, 3 Oct 2017 19:34:19 +0000 (12:34 -0700)
osd/PrimaryLogPG: do not set data/omap digest blindly

Reviewed-by: Sage Weil <sage@redhat.com>
1  2 
src/osd/PG.cc
src/osd/PG.h
src/osd/PrimaryLogPG.cc
src/osd/PrimaryLogPG.h

diff --cc src/osd/PG.cc
Simple merge
diff --cc src/osd/PG.h
Simple merge
index 9c85f3b1694c5a4d22a1d3be38c2831b05f77d61,a8d935f92557fa5725e149da75e117c7e4490a16..643af5cb1c2241dd8359d583b8bd17eeeb0b8069
@@@ -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));
Simple merge