From c6c445f6074df113a28adcae89248b909d031f8e Mon Sep 17 00:00:00 2001 From: Casey Bodley Date: Fri, 25 Jan 2019 16:17:19 -0500 Subject: [PATCH] rgw: add BucketShard::init overload for bucket_info,obj Signed-off-by: Casey Bodley --- src/rgw/rgw_rados.cc | 17 +++++++++++++++++ src/rgw/rgw_rados.h | 1 + 2 files changed, 18 insertions(+) diff --git a/src/rgw/rgw_rados.cc b/src/rgw/rgw_rados.cc index 7e3dcca2bc2..242a39dac82 100644 --- a/src/rgw/rgw_rados.cc +++ b/src/rgw/rgw_rados.cc @@ -3270,6 +3270,23 @@ int RGWRados::BucketShard::init(const rgw_bucket& _bucket, return 0; } +int RGWRados::BucketShard::init(const RGWBucketInfo& bucket_info, + const rgw_obj& obj) +{ + bucket = bucket_info.bucket; + + int ret = store->open_bucket_index_shard(bucket_info, index_ctx, + obj.get_hash_object(), &bucket_obj, + &shard_id); + if (ret < 0) { + ldout(store->ctx(), 0) << "ERROR: open_bucket_index_shard() returned ret=" << ret << dendl; + return ret; + } + ldout(store->ctx(), 20) << " bucket index object: " << bucket_obj << dendl; + + return 0; +} + int RGWRados::BucketShard::init(const RGWBucketInfo& bucket_info, int sid) { bucket = bucket_info.bucket; diff --git a/src/rgw/rgw_rados.h b/src/rgw/rgw_rados.h index 6e371f909a4..8afe70932fa 100644 --- a/src/rgw/rgw_rados.h +++ b/src/rgw/rgw_rados.h @@ -1483,6 +1483,7 @@ public: explicit BucketShard(RGWRados *_store) : store(_store), shard_id(-1) {} int init(const rgw_bucket& _bucket, const rgw_obj& obj, RGWBucketInfo* out); int init(const rgw_bucket& _bucket, int sid, RGWBucketInfo* out); + int init(const RGWBucketInfo& bucket_info, const rgw_obj& obj); int init(const RGWBucketInfo& bucket_info, int sid); };