]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
Librbd: Don't apply to global configserver
authorHaomai Wang <haomaiwang@gmail.com>
Thu, 9 Apr 2015 08:07:30 +0000 (16:07 +0800)
committerHaomai Wang <haomaiwang@gmail.com>
Fri, 10 Apr 2015 06:36:28 +0000 (14:36 +0800)
Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
src/librbd/ImageCtx.cc
src/librbd/ImageCtx.h
src/test/librbd/test_internal.cc

index 64c7ee670b51093e49ffbf5a4bf52baff1d41909..0dc032e00b566aaa5f51f14c62422c4556145b33 100644 (file)
@@ -1,6 +1,7 @@
 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
 // vim: ts=8 sw=2 smarttab
 #include <errno.h>
+#include <boost/assign/list_of.hpp>
 
 #include "common/ceph_context.h"
 #include "common/dout.h"
@@ -16,7 +17,6 @@
 #include "librbd/ObjectMap.h"
 
 #include <boost/bind.hpp>
-#include <boost/assign/list_of.hpp>
 
 #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<string> &configs,
-                                       map<string, bufferlist> &pairs, map<string, bufferlist> *res) {
+  bool ImageCtx::_filter_metadata_confs(const string &prefix, const vector<string> &configs,
+                                        map<string, bufferlist> &pairs, map<string, bufferlist> *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<string> 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<string, bufferlist>::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;
index e3ce60b27c6077cee28f5c9097698769120befa7..32cb6a785b4a19c23e1824462aaa5b82275a88fc 100644 (file)
@@ -132,7 +132,6 @@ namespace librbd {
 
     // Configuration
     static const string METADATA_CONF_PREFIX;
-    std::vector<string> aware_confs;
     bool rbd_cache;
     bool rbd_cache_writethrough_until_flush;
     uint64_t rbd_cache_size;
index c0737fd266a128df6be9c3d9888594b484de7b49..7952c127165f52a5828f078f4ca4d62f1c131c59 100644 (file)
@@ -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);
 }