]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: fix caching for remove_system_obj()
authorYehuda Sadeh <yehuda@redhat.com>
Thu, 18 Dec 2014 07:05:25 +0000 (23:05 -0800)
committerYehuda Sadeh <yehuda@redhat.com>
Mon, 19 Jan 2015 23:57:57 +0000 (15:57 -0800)
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 <yehuda@redhat.com>
src/rgw/rgw_cache.h
src/rgw/rgw_rados.cc

index c6dd0b2e4080681bf4234fc1b7b520ac3bcef66f..4db884b41c73a164afa8082bb4690f6641333214 100644 (file)
@@ -226,7 +226,7 @@ public:
   int raw_obj_stat(rgw_obj& obj, uint64_t *psize, time_t *pmtime, uint64_t *epoch, map<string, bufferlist> *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<rgw_cache_entry_info *>& cache_info_entries, RGWChainedCache::Entry *chained_entry) {
     return cache.chain_cache_entry(cache_info_entries, chained_entry);
@@ -246,13 +246,13 @@ void RGWCache<T>::normalize_bucket_and_obj(rgw_bucket& src_bucket, const string&
 }
 
 template <class T>
-int RGWCache<T>::delete_obj_impl(void *ctx, const string& bucket_owner, rgw_obj& obj, bool use_versioning, RGWObjVersionTracker *objv_tracker)
+int RGWCache<T>::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<T>::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 <class T>
index af255467c23102bea8d632816fa2f3e065bd56c2..b6e976c818389254588d0479eb349e311db344f5 100644 (file)
@@ -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;