rgw/rgw_op: Remove get_val from hotpath via legacy options

Signed-off-by: Mark Nelson <mnelson@redhat.com>
This commit is contained in:
Mark Nelson 2019-08-27 23:35:47 -04:00
parent 18a41277fb
commit b7608ec280
2 changed files with 9 additions and 8 deletions

View File

@ -1265,6 +1265,10 @@ OPTION(rados_osd_op_timeout, OPT_DOUBLE) // how many seconds to wait for a respo
OPTION(rados_tracing, OPT_BOOL) // true if LTTng-UST tracepoints should be enabled
OPTION(rgw_max_attr_name_len, OPT_SIZE)
OPTION(rgw_max_attr_size, OPT_SIZE)
OPTION(rgw_max_attrs_num_in_req, OPT_U64)
OPTION(rgw_max_chunk_size, OPT_INT)
OPTION(rgw_put_obj_min_window_size, OPT_INT)
OPTION(rgw_put_obj_max_window_size, OPT_INT)

View File

@ -2014,26 +2014,23 @@ static inline int rgw_get_request_metadata(CephContext* const cct,
* name. Passing here doesn't guarantee that an OSD will accept that
* as ObjectStore::get_max_attr_name_length() can set the limit even
* lower than the "osd_max_attr_name_len" configurable. */
const size_t max_attr_name_len = \
cct->_conf.get_val<Option::size_t>("rgw_max_attr_name_len");
const auto max_attr_name_len = cct->_conf->rgw_max_attr_name_len;
if (max_attr_name_len && attr_name.length() > max_attr_name_len) {
return -ENAMETOOLONG;
}
/* Similar remarks apply to the check for value size. We're veryfing
* it early at the RGW's side as it's being claimed in /info. */
const size_t max_attr_size = \
cct->_conf.get_val<Option::size_t>("rgw_max_attr_size");
const auto max_attr_size = cct->_conf->rgw_max_attr_size;
if (max_attr_size && xattr.length() > max_attr_size) {
return -EFBIG;
}
/* Swift allows administrators to limit the number of metadats items
* send _in a single request_. */
const auto rgw_max_attrs_num_in_req = \
cct->_conf.get_val<uint64_t>("rgw_max_attrs_num_in_req");
if (rgw_max_attrs_num_in_req &&
++valid_meta_count > rgw_max_attrs_num_in_req) {
const auto max_attrs_num_in_req = cct->_conf->rgw_max_attrs_num_in_req;
if (max_attrs_num_in_req &&
++valid_meta_count > max_attrs_num_in_req) {
return -E2BIG;
}