]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: add manifest info when duplicating head upon manifest object
authormyoungwon oh <ohmyoungwon@gmail.com>
Wed, 3 Mar 2021 14:29:55 +0000 (23:29 +0900)
committermyoungwon oh <ohmyoungwon@gmail.com>
Mon, 29 Mar 2021 08:22:34 +0000 (17:22 +0900)
Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
src/osd/PrimaryLogPG.cc

index 0d3dc38416664a25f55fc4d7f8527be0d03fef53..68e00ead2b4bf70f65f909ac195983695f7a0d54 100644 (file)
@@ -8329,6 +8329,12 @@ int PrimaryLogPG::_rollback_to(OpContext *ctx, ceph_osd_op& op)
       else
        obs.oi.clear_omap_digest();
 
+      if (rollback_to->obs.oi.has_manifest() && rollback_to->obs.oi.manifest.is_chunked()) {
+       obs.oi.set_flag(object_info_t::FLAG_MANIFEST);
+       obs.oi.manifest.type = rollback_to->obs.oi.manifest.type;
+       obs.oi.manifest.chunk_map = rollback_to->obs.oi.manifest.chunk_map;
+      }
+
       if (rollback_to->obs.oi.is_omap()) {
        dout(10) << __func__ << " setting omap flag on " << obs.oi.soid << dendl;
        obs.oi.set_flag(object_info_t::FLAG_OMAP);