From e44025c75918f085d19b74f7db786cc5aadeb9df 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 (cherry picked from commit c6c445f6074df113a28adcae89248b909d031f8e) --- 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 b798291bd9325..61d20fa8f39cc 100644 --- a/src/rgw/rgw_rados.cc +++ b/src/rgw/rgw_rados.cc @@ -6816,6 +6816,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 fe4e8e708724e..8ffae51c4d5dc 100644 --- a/src/rgw/rgw_rados.h +++ b/src/rgw/rgw_rados.h @@ -2742,6 +2742,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); }; -- 2.39.5