]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: account object removal
authorYehuda Sadeh <yehuda@hq.newdream.net>
Wed, 21 Sep 2011 22:20:29 +0000 (15:20 -0700)
committerYehuda Sadeh <yehuda@hq.newdream.net>
Wed, 21 Sep 2011 22:20:29 +0000 (15:20 -0700)
src/rgw/rgw_rados.cc

index abb1ec5ebbb9d95b707cd5a1ef124038ccbe0f58..bf575182570eb11d646bd63fc1fea03d30193838 100644 (file)
@@ -868,6 +868,11 @@ int RGWRados::delete_obj_impl(void *ctx, std::string& id, rgw_obj& obj, bool syn
 
   atomic_write_finish(state, r);
 
+  if (r >= 0 && bucket.marker.size()) {
+    uint64_t epoch = io_ctx.get_last_version();
+    r = cls_obj_del(bucket, epoch, obj.object);
+  }
+
   if (r < 0)
     return r;
 
@@ -1395,7 +1400,7 @@ int RGWRados::clone_objs_impl(void *ctx, rgw_obj& dst_obj,
 
   atomic_write_finish(state, ret);
 
-  if (ret >= 0) {
+  if (ret >= 0 && bucket.marker.size()) {
     uint64_t epoch = io_ctx.get_last_version();
     utime_t ut;
     ret = cls_obj_add(bucket, epoch, dst_obj.object, size, ut);