From e5bfd944056d97e9802cc549154da0504e0b8b06 Mon Sep 17 00:00:00 2001 From: Yehuda Sadeh Date: Mon, 30 Nov 2015 12:15:24 -0800 Subject: [PATCH] rgw: avoid calling rgw_make_bucket_entry_name() when not needed Signed-off-by: Yehuda Sadeh --- src/rgw/rgw_bucket.cc | 12 ++++++++++++ src/rgw/rgw_bucket.h | 2 ++ src/rgw/rgw_log.cc | 4 +--- src/rgw/rgw_rest_s3.cc | 5 ++--- src/rgw/rgw_rest_swift.cc | 5 ++--- 5 files changed, 19 insertions(+), 9 deletions(-) diff --git a/src/rgw/rgw_bucket.cc b/src/rgw/rgw_bucket.cc index 157fd085aa60c..456700dfe4545 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 e818f0a6b5c97..9191fbe8651cc 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 0e565cb2c858b..8f85fdec17fbb 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 16d5dea41d915..8c00e192c03fd 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 0d3aeeb9afd1b..95cb8f514c683 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); -- 2.39.5