]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: fix rewrite a versioning object create a new object bug 19787/head
authorEnming Zhang <enming.zhang@umcloud.com>
Tue, 31 Oct 2017 07:21:21 +0000 (15:21 +0800)
committerMatt Benjamin <mbenjamin@redhat.com>
Thu, 4 Jan 2018 22:04:25 +0000 (17:04 -0500)
Fixes: http://tracker.ceph.com/issues/21984
Signed-off-by: Enming Zhang <enming.zhang@umcloud.com>
(cherry picked from commit 700a0292362128cb29586a64ef8215a07d96736b)
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
src/rgw/rgw_rados.cc

index a44fc01a850342f51fa5064a7f556f6e7270d125..cbcd0553353ba7d587503944fdb5ed4823f66983 100644 (file)
@@ -7442,8 +7442,11 @@ int RGWRados::rewrite_obj(RGWBucketInfo& dest_bucket_info, rgw_obj& obj)
     return ret;
   }
 
-  return copy_obj_data(rctx, dest_bucket_info, read_op, obj_size - 1, obj, obj, max_chunk_size, NULL, mtime, attrset,
-                       RGW_OBJ_CATEGORY_MAIN, 0, real_time(), NULL, NULL, NULL);
+  return copy_obj_data(rctx, dest_bucket_info, read_op, obj_size - 1, obj, obj,
+                                          max_chunk_size, NULL, mtime, attrset,
+                                          RGW_OBJ_CATEGORY_MAIN, 0, real_time(),
+                                          (obj.key.instance.empty() ? NULL : &(obj.key.instance)),
+                                          NULL, NULL);
 }
 
 struct obj_time_weight {
@@ -8240,7 +8243,7 @@ int RGWRados::copy_obj_data(RGWObjectCtx& obj_ctx,
   append_rand_alpha(cct, tag, tag, 32);
 
   RGWPutObjProcessor_Atomic processor(obj_ctx,
-                                      dest_bucket_info, dest_obj.bucket, dest_obj.get_oid(),
+                                      dest_bucket_info, dest_obj.bucket, dest_obj.key.name,
                                       cct->_conf->rgw_obj_stripe_size, tag, dest_bucket_info.versioning_enabled());
   if (version_id) {
     processor.set_version_id(*version_id);