diff options
author | Yehuda Sadeh <yehuda@inktank.com> | 2013-10-21 14:45:59 -0700 |
---|---|---|
committer | Yehuda Sadeh <yehuda@inktank.com> | 2013-10-21 16:25:24 -0700 |
commit | db7eb771226beaa2372ef5860ce742cb3457cd89 (patch) | |
tree | e40591c44a683f0fd708c76276f9597241284596 | |
parent | cbf8f9a51737e7d89fb0ec0832b50fd47c35b08d (diff) | |
download | ceph-db7eb771226beaa2372ef5860ce742cb3457cd89.tar.gz |
rgw: get rid of req_state.bucket_name
No need for this field, as we already have req_state.bucket_name_str.
This saves us some memory allocation / freeing through every request
processing.
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-rw-r--r-- | src/rgw/rgw_common.cc | 3 | ||||
-rw-r--r-- | src/rgw/rgw_common.h | 1 | ||||
-rw-r--r-- | src/rgw/rgw_log.cc | 8 | ||||
-rw-r--r-- | src/rgw/rgw_op.cc | 2 | ||||
-rw-r--r-- | src/rgw/rgw_rest.cc | 2 | ||||
-rw-r--r-- | src/rgw/rgw_rest_metadata.cc | 4 | ||||
-rw-r--r-- | src/rgw/rgw_rest_s3.cc | 23 | ||||
-rw-r--r-- | src/rgw/rgw_rest_swift.cc | 10 |
8 files changed, 22 insertions, 31 deletions
diff --git a/src/rgw/rgw_common.cc b/src/rgw/rgw_common.cc index c872314fe4e..0b2d0035992 100644 --- a/src/rgw/rgw_common.cc +++ b/src/rgw/rgw_common.cc @@ -135,7 +135,6 @@ req_state::req_state(CephContext *_cct, class RGWEnv *e) : cct(_cct), cio(NULL), object_acl = NULL; expect_cont = false; - bucket_name = NULL; object = NULL; header_ended = false; @@ -149,7 +148,6 @@ req_state::req_state(CephContext *_cct, class RGWEnv *e) : cct(_cct), cio(NULL), perm_mask = 0; content_length = 0; object = NULL; - bucket_name = NULL; has_bad_meta = false; length = NULL; copy_source = NULL; @@ -164,7 +162,6 @@ req_state::~req_state() { delete bucket_acl; delete object_acl; free((void *)object); - free((void *)bucket_name); } struct str_len { diff --git a/src/rgw/rgw_common.h b/src/rgw/rgw_common.h index 2aaa5b6af8c..b3d39e57c2d 100644 --- a/src/rgw/rgw_common.h +++ b/src/rgw/rgw_common.h @@ -819,7 +819,6 @@ struct req_state { uint32_t perm_mask; utime_t header_time; - const char *bucket_name; const char *object; rgw_bucket bucket; diff --git a/src/rgw/rgw_log.cc b/src/rgw/rgw_log.cc index 7b75441efce..9398dd04d73 100644 --- a/src/rgw/rgw_log.cc +++ b/src/rgw/rgw_log.cc @@ -171,7 +171,7 @@ static void log_usage(struct req_state *s, const string& op_name) string user; - if (s->bucket_name) + if (!s->bucket_name_str.empty()) user = s->bucket_owner.get_id(); else user = s->user.user_id; @@ -267,7 +267,7 @@ int rgw_log_op(RGWRados *store, struct req_state *s, const string& op_name, OpsL if (!s->enable_ops_log) return 0; - if (!s->bucket_name) { + if (s->bucket_name_str.empty()) { ldout(s->cct, 5) << "nothing to log for operation" << dendl; return -EINVAL; } @@ -280,9 +280,9 @@ int rgw_log_op(RGWRados *store, struct req_state *s, const string& op_name, OpsL } else { bucket_id = s->bucket.bucket_id; } - entry.bucket = s->bucket_name; + entry.bucket = s->bucket_name_str; - if (check_utf8(s->bucket_name, entry.bucket.size()) != 0) { + if (check_utf8(s->bucket_name_str.c_str(), entry.bucket.size()) != 0) { ldout(s->cct, 5) << "not logging op on bucket with non-utf8 name" << dendl; return 0; } diff --git a/src/rgw/rgw_op.cc b/src/rgw/rgw_op.cc index efdd9981a7f..aa7ff9bb3f5 100644 --- a/src/rgw/rgw_op.cc +++ b/src/rgw/rgw_op.cc @@ -1212,7 +1212,7 @@ void RGWDeleteBucket::execute() { ret = -EINVAL; - if (!s->bucket_name) + if (s->bucket_name_str.empty()) return; RGWObjVersionTracker ot; diff --git a/src/rgw/rgw_rest.cc b/src/rgw/rgw_rest.cc index 87ad92dfdf7..30cb0d9b66e 100644 --- a/src/rgw/rgw_rest.cc +++ b/src/rgw/rgw_rest.cc @@ -906,7 +906,7 @@ int RGWListBucketMultiparts_ObjStore::get_params() int RGWDeleteMultiObj_ObjStore::get_params() { - bucket_name = s->bucket_name; + bucket_name = s->bucket_name_str; if (bucket_name.empty()) { ret = -EINVAL; diff --git a/src/rgw/rgw_rest_metadata.cc b/src/rgw/rgw_rest_metadata.cc index fc1d6ded166..5036235ebd2 100644 --- a/src/rgw/rgw_rest_metadata.cc +++ b/src/rgw/rgw_rest_metadata.cc @@ -33,8 +33,8 @@ static inline void frame_metadata_key(req_state *s, string& out) { string metadata_key; string section; - if (s->bucket_name) { - section = s->bucket_name; + if (!s->bucket_name_str.empty()) { + section = s->bucket_name_str; } else { section = key; key.clear(); diff --git a/src/rgw/rgw_rest_s3.cc b/src/rgw/rgw_rest_s3.cc index 83874dd42c4..b8fd8aa4093 100644 --- a/src/rgw/rgw_rest_s3.cc +++ b/src/rgw/rgw_rest_s3.cc @@ -250,7 +250,7 @@ void RGWListBucket_ObjStore_S3::send_response() s->formatter->open_object_section_in_ns("ListBucketResult", "http://s3.amazonaws.com/doc/2006-03-01/"); - s->formatter->dump_string("Name", s->bucket_name); + s->formatter->dump_string("Name", s->bucket_name_str.c_str()); if (!prefix.empty()) s->formatter->dump_string("Prefix", prefix); s->formatter->dump_string("Marker", marker); @@ -1154,7 +1154,7 @@ void RGWPostObj_ObjStore_S3::send_response() string etag_url; - url_escape(s->bucket_name, bucket); + url_escape(s->bucket_name_str, bucket); url_escape(s->object_str, key); url_escape(etag_str, etag_url); @@ -1204,7 +1204,7 @@ done: s->formatter->open_object_section("PostResponse"); if (g_conf->rgw_dns_name.length()) s->formatter->dump_format("Location", "%s/%s", s->info.script_uri.c_str(), s->object_str.c_str()); - s->formatter->dump_string("Bucket", s->bucket_name); + s->formatter->dump_string("Bucket", s->bucket_name_str.c_str()); s->formatter->dump_string("Key", s->object_str.c_str()); s->formatter->close_section(); } @@ -1529,7 +1529,7 @@ void RGWInitMultipart_ObjStore_S3::send_response() dump_start(s); s->formatter->open_object_section_in_ns("InitiateMultipartUploadResult", "http://s3.amazonaws.com/doc/2006-03-01/"); - s->formatter->dump_string("Bucket", s->bucket_name); + s->formatter->dump_string("Bucket", s->bucket_name_str.c_str()); s->formatter->dump_string("Key", s->object); s->formatter->dump_string("UploadId", upload_id); s->formatter->close_section(); @@ -1548,8 +1548,8 @@ void RGWCompleteMultipart_ObjStore_S3::send_response() s->formatter->open_object_section_in_ns("CompleteMultipartUploadResult", "http://s3.amazonaws.com/doc/2006-03-01/"); if (g_conf->rgw_dns_name.length()) - s->formatter->dump_format("Location", "%s.%s", s->bucket_name, g_conf->rgw_dns_name.c_str()); - s->formatter->dump_string("Bucket", s->bucket_name); + s->formatter->dump_format("Location", "%s.%s", s->bucket_name_str.c_str(), g_conf->rgw_dns_name.c_str()); + s->formatter->dump_string("Bucket", s->bucket_name_str.c_str()); s->formatter->dump_string("Key", s->object); s->formatter->dump_string("ETag", etag); s->formatter->close_section(); @@ -1586,7 +1586,7 @@ void RGWListMultipart_ObjStore_S3::send_response() for (i = 0, test_iter = iter; test_iter != parts.end() && i < max_parts; ++test_iter, ++i) { cur_max = test_iter->first; } - s->formatter->dump_string("Bucket", s->bucket_name); + s->formatter->dump_string("Bucket", s->bucket_name_str.c_str()); s->formatter->dump_string("Key", s->object); s->formatter->dump_string("UploadId", upload_id); s->formatter->dump_string("StorageClass", "STANDARD"); @@ -1634,7 +1634,7 @@ void RGWListBucketMultiparts_ObjStore_S3::send_response() return; s->formatter->open_object_section("ListMultipartUploadsResult"); - s->formatter->dump_string("Bucket", s->bucket_name); + s->formatter->dump_string("Bucket", s->bucket_name_str.c_str()); if (!prefix.empty()) s->formatter->dump_string("ListMultipartUploadsResult.Prefix", prefix); string& key_marker = marker.get_key(); @@ -1920,9 +1920,8 @@ int RGWHandler_ObjStore_S3::init_from_header(struct req_state *s, int default_fo first = req; } - if (!s->bucket_name) { + if (s->bucket_name_str.empty()) { s->bucket_name_str = first; - s->bucket_name = strdup(s->bucket_name_str.c_str()); if (pos >= 0) { string encoded_obj_str = req.substr(pos+1); @@ -1999,7 +1998,7 @@ 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) { - dout(10) << "s->object=" << (s->object ? s->object : "<NULL>") << " s->bucket=" << (s->bucket_name ? s->bucket_name : "<NULL>") << dendl; + dout(10) << "s->object=" << (s->object ? s->object : "<NULL>") << " s->bucket=" << (!s->bucket_name_str.empty() ? s->bucket_name_str : "<NULL>") << dendl; bool relaxed_names = s->cct->_conf->rgw_relaxed_s3_bucket_names; int ret = validate_bucket_name(s->bucket_name_str, relaxed_names); @@ -2269,7 +2268,7 @@ RGWHandler *RGWRESTMgr_S3::get_handler(struct req_state *s) if (ret < 0) return NULL; - if (!s->bucket_name) + if (s->bucket_name_str.empty()) return new RGWHandler_ObjStore_Service_S3; if (!s->object) diff --git a/src/rgw/rgw_rest_swift.cc b/src/rgw/rgw_rest_swift.cc index 58e60978c45..eba16d86899 100644 --- a/src/rgw/rgw_rest_swift.cc +++ b/src/rgw/rgw_rest_swift.cc @@ -453,7 +453,7 @@ int RGWCopyObj_ObjStore_SWIFT::get_params() src_bucket_name = s->src_bucket_name; src_object = s->src_object; - dest_bucket_name = s->bucket_name; + dest_bucket_name = s->bucket_name_str; dest_object = s->object_str; return 0; @@ -839,8 +839,6 @@ int RGWHandler_ObjStore_SWIFT::init_from_header(struct req_state *s) return 0; s->bucket_name_str = first; - s->bucket_name = strdup(s->bucket_name_str.c_str()); - s->info.effective_uri = "/" + s->bucket_name_str; @@ -855,7 +853,7 @@ int RGWHandler_ObjStore_SWIFT::init_from_header(struct req_state *s) int RGWHandler_ObjStore_SWIFT::init(RGWRados *store, struct req_state *s, RGWClientIO *cio) { - dout(10) << "s->object=" << (s->object ? s->object : "<NULL>") << " s->bucket=" << (s->bucket_name ? s->bucket_name : "<NULL>") << dendl; + dout(10) << "s->object=" << (s->object ? s->object : "<NULL>") << " s->bucket=" << (!s->bucket_name_str.empty() ? s->bucket_name_str : "<NULL>") << dendl; int ret = validate_bucket_name(s->bucket_name_str.c_str()); if (ret) @@ -894,8 +892,6 @@ int RGWHandler_ObjStore_SWIFT::init(RGWRados *store, struct req_state *s, RGWCli s->src_bucket_name = s->bucket_name_str; s->src_object = s->object_str; s->bucket_name_str = dest_bucket_name; - free(s->bucket_name); - s->bucket_name = strdup(s->bucket_name_str.c_str()); s->object_str = dest_object; s->op = OP_PUT; } @@ -910,7 +906,7 @@ RGWHandler *RGWRESTMgr_SWIFT::get_handler(struct req_state *s) if (ret < 0) return NULL; - if (!s->bucket_name) + if (s->bucket_name_str.empty()) return new RGWHandler_ObjStore_Service_SWIFT; if (!s->object) return new RGWHandler_ObjStore_Bucket_SWIFT; |