]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: fix full/nearfull ratio initialization
authorSage Weil <sage.weil@dreamhost.com>
Thu, 19 Apr 2012 00:14:09 +0000 (17:14 -0700)
committerSage Weil <sage.weil@dreamhost.com>
Thu, 19 Apr 2012 00:14:09 +0000 (17:14 -0700)
create_pending() is called before create_initial(), so just put these in
the first incremental.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
src/mon/PGMonitor.cc

index 08fdf2535358f85610222337e092a4414f385d4b..e65e6825c6d80a4e6c1e0718dd3b0d08c4e7c90a 100644 (file)
@@ -136,12 +136,6 @@ void PGMonitor::tick()
 void PGMonitor::create_initial()
 {
   dout(10) << "create_initial -- creating initial map" << dendl;
-  pg_map.full_ratio = g_conf->mon_osd_full_ratio;
-  if (pg_map.full_ratio > 1.0)
-    pg_map.full_ratio /= 100.0;
-  pg_map.nearfull_ratio = g_conf->mon_osd_nearfull_ratio;
-  if (pg_map.nearfull_ratio > 1.0)
-    pg_map.nearfull_ratio /= 100.0;
 }
 
 void PGMonitor::update_from_paxos()
@@ -242,8 +236,18 @@ void PGMonitor::create_pending()
 {
   pending_inc = PGMap::Incremental();
   pending_inc.version = pg_map.version + 1;
-  pending_inc.full_ratio = pg_map.full_ratio;
-  pending_inc.nearfull_ratio = pg_map.nearfull_ratio;
+  if (pg_map.version == 0) {
+    // pull initial values from first leader mon's config
+    pending_inc.full_ratio = g_conf->mon_osd_full_ratio;
+    if (pending_inc.full_ratio > 1.0)
+      pending_inc.full_ratio /= 100.0;
+    pending_inc.nearfull_ratio = g_conf->mon_osd_nearfull_ratio;
+    if (pending_inc.nearfull_ratio > 1.0)
+      pending_inc.nearfull_ratio /= 100.0;
+  } else {
+    pending_inc.full_ratio = pg_map.full_ratio;
+    pending_inc.nearfull_ratio = pg_map.nearfull_ratio;
+  }
   dout(10) << "create_pending v " << pending_inc.version << dendl;
 }