]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Fix clone problem 1762/head
authorHaomai Wang <haomaiwang@gmail.com>
Sat, 3 May 2014 04:53:06 +0000 (12:53 +0800)
committerHaomai Wang <haomaiwang@gmail.com>
Sat, 3 May 2014 04:55:17 +0000 (12:55 +0800)
When clone happened, the origin header also will be updated in GenericObjectMap,
so the new header wraper(StripObjectHeader) should be updated too.

Fix #8282
Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
src/os/KeyValueStore.cc

index cc117fa3a6718b49e61bc0b6cb537317fe8ea149..fb459b226b86f23a25699cfab329a71649e94df3 100644 (file)
@@ -204,11 +204,14 @@ void StripObjectMap::clone_wrap(StripObjectHeader &old_header,
 
   if (target_header)
     *target_header = old_header;
+  if (origin_header)
+    *origin_header = old_header;
 
   clone(old_header.header, cid, oid, t, &new_origin_header,
         &target_header->header);
 
-  old_header.header = new_origin_header;
+  if(origin_header)
+    origin_header->header = new_origin_header;
 
   if (target_header) {
     target_header->oid = oid;