From: Yehuda Sadeh Date: Mon, 30 Nov 2015 20:15:24 +0000 (-0800) Subject: rgw: avoid calling rgw_make_bucket_entry_name() when not needed X-Git-Tag: v10.0.2~127^2~5 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=e5bfd944056d97e9802cc549154da0504e0b8b06;p=ceph.git rgw: avoid calling rgw_make_bucket_entry_name() when not needed Signed-off-by: Yehuda Sadeh --- diff --git a/src/rgw/rgw_bucket.cc b/src/rgw/rgw_bucket.cc index 157fd085aa6..456700dfe45 100644 --- a/src/rgw/rgw_bucket.cc +++ b/src/rgw/rgw_bucket.cc @@ -53,6 +53,18 @@ void rgw_make_bucket_entry_name(const string& tenant_name, const string& bucket_ } } +string rgw_make_bucket_entry_name(const string& tenant_name, const string& bucket_name) { + string bucket_entry; + + if (tenant_name.empty()) { + bucket_entry = bucket_name; + } else { + bucket_entry = tenant_name + "/" + bucket_name; + } + + return bucket_entry; +} + /* * Tenants are separated from buckets in URLs by a colon in S3. * This function is not to be used on Swift URLs, not even for COPY arguments. diff --git a/src/rgw/rgw_bucket.h b/src/rgw/rgw_bucket.h index e818f0a6b5c..9191fbe8651 100644 --- a/src/rgw/rgw_bucket.h +++ b/src/rgw/rgw_bucket.h @@ -47,6 +47,8 @@ extern int rgw_bucket_sync_user_stats(RGWRados *store, const string& tenant_name extern void rgw_make_bucket_entry_name(const string& tenant_name, const string& bucket_name, string& bucket_entry); +extern string rgw_make_bucket_entry_name(const string& tenant_name, + const string& bucket_name); extern void rgw_parse_url_bucket(const string &bucket, string &tenant_name, string &bucket_name); diff --git a/src/rgw/rgw_log.cc b/src/rgw/rgw_log.cc index 0e565cb2c85..8f85fdec17f 100644 --- a/src/rgw/rgw_log.cc +++ b/src/rgw/rgw_log.cc @@ -289,9 +289,7 @@ int rgw_log_op(RGWRados *store, struct req_state *s, const string& op_name, OpsL } else { bucket_id = s->bucket.bucket_id; } - string bucket_log; - rgw_make_bucket_entry_name(s->bucket_tenant, s->bucket_name, bucket_log); - entry.bucket = bucket_log; + rgw_make_bucket_entry_name(s->bucket_tenant, s->bucket_name, entry.bucket); if (check_utf8(s->bucket_name.c_str(), entry.bucket.size()) != 0) { ldout(s->cct, 5) << "not logging op on bucket with non-utf8 name" << dendl; diff --git a/src/rgw/rgw_rest_s3.cc b/src/rgw/rgw_rest_s3.cc index 16d5dea41d9..8c00e192c03 100644 --- a/src/rgw/rgw_rest_s3.cc +++ b/src/rgw/rgw_rest_s3.cc @@ -2363,9 +2363,8 @@ int RGWHandler_ObjStore_S3::validate_bucket_name(const string& bucket, bool rela int RGWHandler_ObjStore_S3::init(RGWRados *store, struct req_state *s, RGWClientIO *cio) { - string bucket_log; - rgw_make_bucket_entry_name(s->bucket_tenant, s->bucket_name, bucket_log); - dout(10) << "s->object=" << (!s->object.empty() ? s->object : rgw_obj_key("")) << " s->bucket=" << bucket_log << dendl; + dout(10) << "s->object=" << (!s->object.empty() ? s->object : rgw_obj_key("")) + << " s->bucket=" << rgw_make_bucket_entry_name(s->bucket_tenant, s->bucket_name) << dendl; int ret; ret = validate_tenant_name(s->bucket_tenant); diff --git a/src/rgw/rgw_rest_swift.cc b/src/rgw/rgw_rest_swift.cc index 0d3aeeb9afd..95cb8f514c6 100644 --- a/src/rgw/rgw_rest_swift.cc +++ b/src/rgw/rgw_rest_swift.cc @@ -1216,9 +1216,8 @@ int RGWHandler_ObjStore_SWIFT::init_from_header(struct req_state *s) int RGWHandler_ObjStore_SWIFT::init(RGWRados *store, struct req_state *s, RGWClientIO *cio) { - string bucket_log; - rgw_make_bucket_entry_name(s->bucket_tenant, s->bucket_name, bucket_log); - dout(10) << "s->object=" << (!s->object.empty() ? s->object : rgw_obj_key("")) << " s->bucket=" << bucket_log << dendl; + dout(10) << "s->object=" << (!s->object.empty() ? s->object : rgw_obj_key("")) + << " s->bucket=" << rgw_make_bucket_entry_name(s->bucket_tenant, s->bucket_name) << dendl; int ret; ret = validate_tenant_name(s->bucket_tenant);