From: Yehuda Sadeh Date: Sat, 24 Sep 2011 05:36:26 +0000 (-0700) Subject: rgw: tmp objects can be removed async X-Git-Tag: v0.37~103^2~40 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=53695134a6d4e8465bff8038c432858b2fcd544e;p=ceph.git rgw: tmp objects can be removed async --- diff --git a/src/rgw/rgw_op.cc b/src/rgw/rgw_op.cc index 5b54e9228e29..c73a5768ac0b 100644 --- a/src/rgw/rgw_op.cc +++ b/src/rgw/rgw_op.cc @@ -741,7 +741,7 @@ void RGWPutObj::execute() if (ret < 0) goto done_err; if (created_obj) { - ret = rgwstore->delete_obj(s->obj_ctx, s->user.user_id, obj); + ret = rgwstore->delete_obj(NULL, s->user.user_id, obj, false); if (ret < 0) goto done; } diff --git a/src/rgw/rgw_rados.cc b/src/rgw/rgw_rados.cc index 0f449768f75b..061fc04671ff 100644 --- a/src/rgw/rgw_rados.cc +++ b/src/rgw/rgw_rados.cc @@ -803,6 +803,11 @@ int RGWRados::delete_obj_impl(void *ctx, std::string& id, rgw_obj& obj, bool syn if (r < 0) return r; r = io_ctx.operate(oid, &op); + + if (r >= 0 && bucket.marker.size()) { + uint64_t epoch = io_ctx.get_last_version(); + r = complete_update_index_del(bucket, obj.object, tag, epoch); + } } else { librados::AioCompletion *completion = rados->aio_create_completion(NULL, NULL, NULL); r = io_ctx.aio_operate(obj.object, completion, &op); @@ -811,11 +816,6 @@ 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 = complete_update_index_del(bucket, obj.object, tag, epoch); - } - if (r < 0) return r;