From: Yehuda Sadeh Date: Wed, 10 Aug 2011 19:13:16 +0000 (-0700) Subject: rgw: remove original object in put_obj, instead of truncate X-Git-Tag: v0.34~116 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=32711fc8f9c243e446c377b9f2fec809e7a12555;p=ceph.git rgw: remove original object in put_obj, instead of truncate --- diff --git a/src/rgw/rgw_rados.cc b/src/rgw/rgw_rados.cc index 4adee9b442f6..c0fed5833b6e 100644 --- a/src/rgw/rgw_rados.cc +++ b/src/rgw/rgw_rados.cc @@ -1120,13 +1120,16 @@ int RGWRados::clone_objs(void *ctx, rgw_obj& dst_obj, io_ctx.locator_set_key(dst_obj.key); ObjectWriteOperation op; + if (truncate_dest) { + op.remove(); + op.set_op_flags(OP_FAILOK); // don't fail if object didn't exist + } + if (category.size()) op.create(false, category); else op.create(false); - if (truncate_dest) - op.truncate(0); map::iterator iter; for (iter = attrs.begin(); iter != attrs.end(); ++iter) {