]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd/: add config helper for min_size and update build_simple*
authorSamuel Just <sam.just@inktank.com>
Wed, 14 Nov 2012 00:45:49 +0000 (16:45 -0800)
committerSamuel Just <sam.just@inktank.com>
Wed, 14 Nov 2012 01:09:26 +0000 (17:09 -0800)
min_size should never be set to 0 on a pool.  config.h
now has a helper to determine the correct default value.

Signed-off-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
src/common/config.h
src/mon/OSDMonitor.cc
src/osd/OSDMap.cc

index 60b13819db53248624f4e2cf88c2752cd6f1a14d..86d240f4ce6fac5dd31964f589091850f702492c 100644 (file)
@@ -216,6 +216,12 @@ public:
 #undef SUBSYS
 #undef DEFAULT_SUBSYS
 
+  unsigned get_osd_pool_default_min_size() const {
+    return osd_pool_default_min_size ?
+      MIN(osd_pool_default_min_size, osd_pool_default_size) :
+      osd_pool_default_size - osd_pool_default_size / 2;
+  }
+
   /** A lock that protects the md_config_t internals. It is
    * recursive, for simplicity.
    * It is best if this lock comes first in the lock hierarchy. We will
index 40d12de9fd5d72d78d5c5f975800cdc4065c6e9d..417fa66a927c12f5a18e0f371d650600820a5b53 100644 (file)
@@ -1892,11 +1892,7 @@ int OSDMonitor::prepare_new_pool(string& name, uint64_t auid, int crush_rule,
   pending_inc.new_pools[pool].type = pg_pool_t::TYPE_REP;
 
   pending_inc.new_pools[pool].size = g_conf->osd_pool_default_size;
-  if (g_conf->osd_pool_default_min_size)
-    pending_inc.new_pools[pool].min_size = MIN(g_conf->osd_pool_default_size,
-                                              g_conf->osd_pool_default_min_size);
-  else
-    pending_inc.new_pools[pool].min_size = g_conf->osd_pool_default_size - g_conf->osd_pool_default_size/2;
+  pending_inc.new_pools[pool].min_size = g_conf->get_osd_pool_default_min_size();
   if (crush_rule >= 0)
     pending_inc.new_pools[pool].crush_ruleset = crush_rule;
   else
index a1464d0ff0089829a6f6030606dabd190b4ce231..d18bef2d673e651a7852b55163e3d8878f48c867 100644 (file)
@@ -1614,7 +1614,7 @@ void OSDMap::build_simple(CephContext *cct, epoch_t e, uuid_d &fsid,
     int64_t pool = ++pool_max;
     pools[pool].type = pg_pool_t::TYPE_REP;
     pools[pool].size = cct->_conf->osd_pool_default_size;
-    pools[pool].min_size = cct->_conf->osd_pool_default_min_size;
+    pools[pool].min_size = cct->_conf->get_osd_pool_default_min_size();
     pools[pool].crush_ruleset = p->first;
     pools[pool].object_hash = CEPH_STR_HASH_RJENKINS;
     pools[pool].set_pg_num(poolbase << pg_bits);
@@ -1736,7 +1736,7 @@ int OSDMap::build_simple_from_conf(CephContext *cct, epoch_t e, uuid_d &fsid,
     int64_t pool = ++pool_max;
     pools[pool].type = pg_pool_t::TYPE_REP;
     pools[pool].size = cct->_conf->osd_pool_default_size;
-    pools[pool].min_size = cct->_conf->osd_pool_default_min_size;
+    pools[pool].min_size = cct->_conf->get_osd_pool_default_min_size();
     pools[pool].crush_ruleset = p->first;
     pools[pool].object_hash = CEPH_STR_HASH_RJENKINS;
     pools[pool].set_pg_num((numosd + 1) << pg_bits);