From: Radoslaw Zarzynski Date: Mon, 25 May 2015 15:55:09 +0000 (+0200) Subject: rgw: make object removal atomic in rgw-object-expirer. X-Git-Tag: v9.1.0~229^2~16 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=1fa376c248018c54200da4511be723bcee298d90;p=ceph.git rgw: make object removal atomic in rgw-object-expirer. Fixes: #4099 Signed-off-by: Radoslaw Zarzynski --- diff --git a/src/rgw/rgw_object_expirer.cc b/src/rgw/rgw_object_expirer.cc index 5f29afcb14de..97b5a27e58d7 100644 --- a/src/rgw/rgw_object_expirer.cc +++ b/src/rgw/rgw_object_expirer.cc @@ -81,7 +81,6 @@ static int garbage_single_object(objexp_hint_entry& hint) return ret; } - /* TODO: check whether the hint is actual. */ RGWObjectCtx rctx(store); rgw_obj_key key = hint.obj_key; @@ -90,6 +89,7 @@ static int garbage_single_object(objexp_hint_entry& hint) } rgw_obj obj(bucket_info.bucket, key); + store->set_atomic(&rctx, obj); ret = store->delete_obj(rctx, bucket_info, obj, bucket_info.versioning_status(), 0, hint.exp_time);