From: Enming Zhang Date: Tue, 31 Oct 2017 07:21:21 +0000 (+0800) Subject: rgw: fix rewrite a versioning object create a new object bug X-Git-Tag: v12.2.3~231^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=4a79dd90657c6635f39de555fcc33daa584ecbd7;p=ceph.git rgw: fix rewrite a versioning object create a new object bug Fixes: http://tracker.ceph.com/issues/21984 Signed-off-by: Enming Zhang (cherry picked from commit 700a0292362128cb29586a64ef8215a07d96736b) Signed-off-by: Matt Benjamin --- diff --git a/src/rgw/rgw_rados.cc b/src/rgw/rgw_rados.cc index a44fc01a8503..cbcd0553353b 100644 --- a/src/rgw/rgw_rados.cc +++ b/src/rgw/rgw_rados.cc @@ -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);