From 710166593c73cd8dcfac572a67fd336dad7c0b1c Mon Sep 17 00:00:00 2001 From: Yehuda Sadeh Date: Tue, 9 Dec 2014 13:58:09 -0800 Subject: [PATCH] rgw: pass num shards on bucket initialization Need to pass the actual num shards that are going to be used for this specific bucket. Bucket may be created by applying metadata from different zone, so num shards might be different. Signed-off-by: Yehuda Sadeh --- src/rgw/rgw_bucket.cc | 2 +- src/rgw/rgw_rados.cc | 6 +++--- src/rgw/rgw_rados.h | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/rgw/rgw_bucket.cc b/src/rgw/rgw_bucket.cc index 3b178dac43c..48abc4d72e6 100644 --- a/src/rgw/rgw_bucket.cc +++ b/src/rgw/rgw_bucket.cc @@ -1728,7 +1728,7 @@ public: objv_tracker = bci.info.objv_tracker; - ret = store->init_bucket_index(bci.info.bucket); + ret = store->init_bucket_index(bci.info.bucket, bci.info.num_shards); if (ret < 0) return ret; diff --git a/src/rgw/rgw_rados.cc b/src/rgw/rgw_rados.cc index 2f18f73142d..6ab472a2fb4 100644 --- a/src/rgw/rgw_rados.cc +++ b/src/rgw/rgw_rados.cc @@ -2375,7 +2375,7 @@ int RGWRados::create_pool(rgw_bucket& bucket) return 0; } -int RGWRados::init_bucket_index(rgw_bucket& bucket) +int RGWRados::init_bucket_index(rgw_bucket& bucket, int num_shards) { librados::IoCtx index_ctx; // context for new bucket @@ -2387,7 +2387,7 @@ int RGWRados::init_bucket_index(rgw_bucket& bucket) dir_oid.append(bucket.marker); map bucket_objs; - get_bucket_index_objects(dir_oid, bucket_index_max_shards, bucket_objs); + get_bucket_index_objects(dir_oid, num_shards, bucket_objs); return CLSRGWIssueBucketIndexInit(index_ctx, bucket_objs, cct->_conf->rgw_bucket_index_max_aio)(); } @@ -2440,7 +2440,7 @@ int RGWRados::create_bucket(RGWUserInfo& owner, rgw_bucket& bucket, string dir_oid = dir_oid_prefix; dir_oid.append(bucket.marker); - r = init_bucket_index(bucket); + r = init_bucket_index(bucket, bucket_index_max_shards); if (r < 0) return r; diff --git a/src/rgw/rgw_rados.h b/src/rgw/rgw_rados.h index 5c5a6bf3f3b..ef387dabc8c 100644 --- a/src/rgw/rgw_rados.h +++ b/src/rgw/rgw_rados.h @@ -1489,7 +1489,7 @@ public: * create a bucket with name bucket and the given list of attrs * returns 0 on success, -ERR# otherwise. */ - virtual int init_bucket_index(rgw_bucket& bucket); + virtual int init_bucket_index(rgw_bucket& bucket, int num_shards); int select_bucket_placement(RGWUserInfo& user_info, const string& region_name, const std::string& rule, const std::string& bucket_name, rgw_bucket& bucket, string *pselected_rule); int select_legacy_bucket_placement(const string& bucket_name, rgw_bucket& bucket); -- 2.47.3