From 16d66167ef56dd7c7a3f4814213b3a777f40e8e2 Mon Sep 17 00:00:00 2001 From: Haomai Wang Date: Thu, 9 Apr 2015 16:07:30 +0800 Subject: [PATCH] Librbd: Don't apply to global configserver Signed-off-by: Haomai Wang --- src/librbd/ImageCtx.cc | 53 +++++++++++++++----------------- src/librbd/ImageCtx.h | 1 - src/test/librbd/test_internal.cc | 4 +-- 3 files changed, 27 insertions(+), 31 deletions(-) diff --git a/src/librbd/ImageCtx.cc b/src/librbd/ImageCtx.cc index 64c7ee670b510..0dc032e00b566 100644 --- a/src/librbd/ImageCtx.cc +++ b/src/librbd/ImageCtx.cc @@ -1,6 +1,7 @@ // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- // vim: ts=8 sw=2 smarttab #include +#include #include "common/ceph_context.h" #include "common/dout.h" @@ -16,7 +17,6 @@ #include "librbd/ObjectMap.h" #include -#include #define dout_subsys ceph_subsys_rbd #undef dout_prefix @@ -75,28 +75,6 @@ namespace librbd { memset(&header, 0, sizeof(header)); memset(&layout, 0, sizeof(layout)); - - aware_confs = boost::assign::list_of( - "rbd_cache")( - "rbd_cache_writethrough_until_flush")( - "rbd_cache_size")( - "rbd_cache_max_dirty")( - "rbd_cache_target_dirty")( - "rbd_cache_max_dirty_age")( - "rbd_cache_max_dirty_object")( - "rbd_cache_block_writes_upfront")( - "rbd_concurrent_management_ops")( - "rbd_balance_snap_reads")( - "rbd_localize_snap_reads")( - "rbd_balance_parent_reads")( - "rbd_localize_parent_reads")( - "rbd_readahead_trigger_requests")( - "rbd_readahead_max_bytes")( - "rbd_readahead_disable_after_bytes")( - "rbd_clone_copy_on_read")( - "rbd_blacklist_on_break_lock")( - "rbd_blacklist_expire_seconds")( - "rbd_request_timed_out_seconds"); } ImageCtx::~ImageCtx() { @@ -832,8 +810,8 @@ namespace librbd { } } - bool ImageCtx::_filter_metadata_confs(const string &prefix, const std::vector &configs, - map &pairs, map *res) { + bool ImageCtx::_filter_metadata_confs(const string &prefix, const vector &configs, + map &pairs, map *res) { size_t conf_prefix_len = prefix.size(); string start = prefix; @@ -856,6 +834,27 @@ namespace librbd { void ImageCtx::apply_metadata_confs() { ldout(cct, 20) << __func__ << dendl; static uint64_t max_conf_items = 128; + const std::vector configs = boost::assign::list_of( + "rbd_cache")( + "rbd_cache_writethrough_until_flush")( + "rbd_cache_size")( + "rbd_cache_max_dirty")( + "rbd_cache_target_dirty")( + "rbd_cache_max_dirty_age")( + "rbd_cache_max_dirty_object")( + "rbd_cache_block_writes_upfront")( + "rbd_concurrent_management_ops")( + "rbd_balance_snap_reads")( + "rbd_localize_snap_reads")( + "rbd_balance_parent_reads")( + "rbd_localize_parent_reads")( + "rbd_readahead_trigger_requests")( + "rbd_readahead_max_bytes")( + "rbd_readahead_disable_after_bytes")( + "rbd_clone_copy_on_read")( + "rbd_blacklist_on_break_lock")( + "rbd_blacklist_expire_seconds")( + "rbd_request_timed_out_seconds"); string start = METADATA_CONF_PREFIX; int r = 0, j = 0; @@ -870,7 +869,7 @@ namespace librbd { if (pairs.empty()) break; - is_continue = _filter_metadata_confs(METADATA_CONF_PREFIX, aware_confs, pairs, &res); + is_continue = _filter_metadata_confs(METADATA_CONF_PREFIX, configs, pairs, &res); for (map::iterator it = res.begin(); it != res.end(); ++it) { j = cct->_conf->set_val(it->first.c_str(), it->second.c_str()); if (j < 0) @@ -881,8 +880,6 @@ namespace librbd { start = pairs.rbegin()->first; } while (is_continue); - cct->_conf->apply_changes(NULL); - md_config_t *conf = cct->_conf; rbd_cache = conf->rbd_cache; rbd_cache_writethrough_until_flush = conf->rbd_cache_writethrough_until_flush; diff --git a/src/librbd/ImageCtx.h b/src/librbd/ImageCtx.h index e3ce60b27c607..32cb6a785b4a1 100644 --- a/src/librbd/ImageCtx.h +++ b/src/librbd/ImageCtx.h @@ -132,7 +132,6 @@ namespace librbd { // Configuration static const string METADATA_CONF_PREFIX; - std::vector aware_confs; bool rbd_cache; bool rbd_cache_writethrough_until_flush; uint64_t rbd_cache_size; diff --git a/src/test/librbd/test_internal.cc b/src/test/librbd/test_internal.cc index c0737fd266a12..7952c127165f5 100644 --- a/src/test/librbd/test_internal.cc +++ b/src/test/librbd/test_internal.cc @@ -383,7 +383,7 @@ TEST_F(TestInternal, MetadatConfig) { pairs[prefix+"asdfsdaf"].append("value6"); pairs[prefix+"zxvzxcv123"].append("value5"); - is_continue = ictx->_aware_metadata_confs(prefix, test_confs, pairs, &res); + is_continue = ictx->_filter_metadata_confs(prefix, test_confs, pairs, &res); ASSERT_TRUE(is_continue); ASSERT_TRUE(res.size() == 3U); ASSERT_TRUE(res.count(test_confs[0])); @@ -392,7 +392,7 @@ TEST_F(TestInternal, MetadatConfig) { res.clear(); pairs["zzzzzzzz"].append("value7"); - is_continue = ictx->_aware_metadata_confs(prefix, test_confs, pairs, &res); + is_continue = ictx->_filter_metadata_confs(prefix, test_confs, pairs, &res); ASSERT_FALSE(is_continue); ASSERT_TRUE(res.size() == 3U); } -- 2.39.5