From 7024ebde21878a92953cabff16183fb8af657acb Mon Sep 17 00:00:00 2001 From: Yehuda Sadeh Date: Wed, 17 Dec 2014 23:05:25 -0800 Subject: [PATCH] rgw: fix caching for remove_system_obj() Align the RGWCache method with the RGWRados method. Also, don't use obj head removal objclass call, as it's for data objects, not metadata. Signed-off-by: Yehuda Sadeh --- src/rgw/rgw_cache.h | 8 ++++---- src/rgw/rgw_rados.cc | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/rgw/rgw_cache.h b/src/rgw/rgw_cache.h index c6dd0b2e40806..4db884b41c73a 100644 --- a/src/rgw/rgw_cache.h +++ b/src/rgw/rgw_cache.h @@ -226,7 +226,7 @@ public: int raw_obj_stat(rgw_obj& obj, uint64_t *psize, time_t *pmtime, uint64_t *epoch, map *attrs, bufferlist *first_chunk, RGWObjVersionTracker *objv_tracker); - int delete_obj_impl(void *ctx, const string& bucket_owner, rgw_obj& obj, bool use_versioning, RGWObjVersionTracker *objv_tracker); + int delete_system_obj(rgw_obj& obj, RGWObjVersionTracker *objv_tracker); bool chain_cache_entry(list& cache_info_entries, RGWChainedCache::Entry *chained_entry) { return cache.chain_cache_entry(cache_info_entries, chained_entry); @@ -246,13 +246,13 @@ void RGWCache::normalize_bucket_and_obj(rgw_bucket& src_bucket, const string& } template -int RGWCache::delete_obj_impl(void *ctx, const string& bucket_owner, rgw_obj& obj, bool use_versioning, RGWObjVersionTracker *objv_tracker) +int RGWCache::delete_system_obj(rgw_obj& obj, RGWObjVersionTracker *objv_tracker) { rgw_bucket bucket; string oid; normalize_bucket_and_obj(obj.bucket, obj.get_object(), bucket, oid); if (bucket.name[0] != '.') - return T::delete_obj_impl(ctx, bucket_owner, obj, use_versioning, objv_tracker); + return T::delete_system_obj(obj, objv_tracker); string name = normal_name(obj); cache.remove(name); @@ -260,7 +260,7 @@ int RGWCache::delete_obj_impl(void *ctx, const string& bucket_owner, rgw_obj& ObjectCacheInfo info; distribute_cache(name, obj, info, REMOVE_OBJ); - return T::delete_obj_impl(ctx, bucket_owner, obj, use_versioning, objv_tracker); + return T::delete_system_obj(obj, objv_tracker); } template diff --git a/src/rgw/rgw_rados.cc b/src/rgw/rgw_rados.cc index af255467c2310..b6e976c818389 100644 --- a/src/rgw/rgw_rados.cc +++ b/src/rgw/rgw_rados.cc @@ -4139,7 +4139,7 @@ int RGWRados::delete_system_obj(rgw_obj& obj, RGWObjVersionTracker *objv_tracker objv_tracker->prepare_op_for_write(&op); } - remove_rgw_head_obj(op); + op.remove(); r = ref.ioctx.operate(ref.oid, &op); if (r < 0) return r; -- 2.39.5