}
}
-int rgw_init_ioctx(librados::Rados *rados, const rgw_pool& pool, librados::IoCtx& ioctx, bool create = false);
-
int rgw_policy_from_attrset(CephContext *cct, map<string, bufferlist>& attrset, RGWAccessControlPolicy *policy);
static inline bool rgw_raw_obj_to_obj(const rgw_bucket& bucket, const rgw_raw_obj& raw_obj, rgw_obj *obj)
int open_objexp_pool_ctx();
int open_reshard_pool_ctx();
- int open_pool_ctx(const rgw_pool& pool, librados::IoCtx& io_ctx);
+ int open_pool_ctx(const rgw_pool& pool, librados::IoCtx& io_ctx,
+ bool mostly_omap);
int open_bucket_index_ctx(const RGWBucketInfo& bucket_info, librados::IoCtx& index_ctx);
int open_bucket_index(const RGWBucketInfo& bucket_info, librados::IoCtx& index_ctx, string& bucket_oid);
int open_bucket_index_base(const RGWBucketInfo& bucket_info, librados::IoCtx& index_ctx,
protected:
CephContext *cct;
- std::vector<librados::Rados> rados;
- uint32_t next_rados_handle;
- RWLock handle_lock;
- std::map<pthread_t, int> rados_map;
+ librados::Rados rados;
using RGWChainedCacheImpl_bucket_info_entry = RGWChainedCacheImpl<bucket_info_entry>;
RGWChainedCacheImpl_bucket_info_entry *binfo_cache;
bucket_id_lock("rados_bucket_id"),
bucket_index_max_shards(0),
max_bucket_id(0), cct(NULL),
- next_rados_handle(0),
- handle_lock("rados_handle_lock"),
binfo_cache(NULL), obj_tombstone_cache(nullptr),
pools_initialized(false),
quota_handler(NULL),
int delete_raw_obj(const rgw_raw_obj& obj);
/** Remove an object from the bucket index */
- int delete_obj_index(const rgw_obj& obj);
+ int delete_obj_index(const rgw_obj& obj, ceph::real_time mtime);
/**
* Set an attr on an object.