From 5601ae27d6daf167dd83b3fc91b7b9591ca0cea6 Mon Sep 17 00:00:00 2001 From: Yehuda Sadeh Date: Thu, 26 Jul 2012 13:14:40 -0700 Subject: [PATCH] mon: set a configurable max osd cap Don't allow setting a higher osd num through the ceph control util. Fixes: #2752 Signed-off-by: Yehuda Sadeh --- src/common/config_opts.h | 1 + src/mon/OSDMonitor.cc | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/src/common/config_opts.h b/src/common/config_opts.h index 43e726decb5f8..8ae36732a2340 100644 --- a/src/common/config_opts.h +++ b/src/common/config_opts.h @@ -125,6 +125,7 @@ OPTION(mon_force_standby_active, OPT_BOOL, true) // should mons force standby-re OPTION(mon_min_osdmap_epochs, OPT_INT, 500) OPTION(mon_max_pgmap_epochs, OPT_INT, 500) OPTION(mon_max_log_epochs, OPT_INT, 500) +OPTION(mon_max_osd, OPT_INT, 10000) OPTION(mon_probe_timeout, OPT_DOUBLE, 2.0) OPTION(mon_slurp_timeout, OPT_DOUBLE, 10.0) OPTION(mon_slurp_bytes, OPT_INT, 256*1024) // limit size of slurp messages diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index f0b008f9686fe..6dbb35ecce94e 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -1975,6 +1975,12 @@ bool OSDMonitor::prepare_command(MMonCommand *m) << osdmap.crush->get_max_devices(); goto out; } + if (newmax > g_conf->mon_max_osd) { + err = -ERANGE; + ss << "cannot set max_osd to " << newmax << " which is > conf.mon_max_osd (" + << g_conf->mon_max_osd << ")"; + goto out; + } pending_inc.new_max_osd = newmax; ss << "set new max_osd = " << pending_inc.new_max_osd; -- 2.39.5