From: Yehuda Sadeh Date: Tue, 12 Aug 2014 20:36:11 +0000 (-0700) Subject: rgw: copy object data if target bucket is in a different pool X-Git-Tag: v0.85~26^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=5d3a7e595f47455896304bf358e5251915d0f16f;p=ceph.git rgw: copy object data if target bucket is in a different pool Fixes: #9039 Backport: firefly The new manifest does not provide a way to put the head and the tail in separate pools. In any case, if an object is copied between buckets in different pools, we may really just want the object to be copied, rather than reference counted. Signed-off-by: Yehuda Sadeh --- diff --git a/src/rgw/rgw_rados.cc b/src/rgw/rgw_rados.cc index 65e5de923460..a6ad5af3b1a1 100644 --- a/src/rgw/rgw_rados.cc +++ b/src/rgw/rgw_rados.cc @@ -3333,7 +3333,7 @@ set_err_state: return ret; } - bool copy_data = !astate->has_manifest; + bool copy_data = !astate->has_manifest || (src_obj.bucket.data_pool != dest_obj.bucket.data_pool); bool copy_first = false; if (astate->has_manifest) { if (!astate->manifest.has_tail()) {