From c274f6c5692e19c65cb035b4b8b114b254780f9b Mon Sep 17 00:00:00 2001 From: Joao Eduardo Luis Date: Wed, 9 Oct 2013 14:58:05 +0100 Subject: mon: OSDMonitor: allow (un)setting 'hashpspool' flag via 'osd pool set' Signed-off-by: Joao Eduardo Luis --- src/mon/OSDMonitor.cc | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index 2b089fa5335..13f752009df 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -2595,6 +2595,17 @@ int OSDMonitor::prepare_command_pool_set(const map &cmdmap, var == "crash_replay_interval" || var == "pg_num" || var == "pgp_num" || var == "crush_ruleset") { cmd_getval(g_ceph_context, cmdmap, "val", n); + } else if (var == "hashpspool") { + string flag; + cmd_getval(g_ceph_context, cmdmap, "val", flag); + if (flag == "true") { + n = 1; + } else if (flag == "false") { + n = 0; + } else { + ss << "unrecognized value '" << flag << "'; use 'true' or 'false'"; + return -EINVAL; + } } else { ss << "unrecognized variable '" << var << "'"; return -EINVAL; @@ -2644,6 +2655,15 @@ int OSDMonitor::prepare_command_pool_set(const map &cmdmap, ss << "crush ruleset " << n << " does not exist"; err = -ENOENT; } + } else if (var == "hashpspool") { + if (val) { + pendng_inc.new_pools[pool].flags |= pg_pool_t::FLAG_HASHPSPOOL; + ss << "set"; + } else { + pending_inc_new_pools[pool].flags ^= pg_pool_t::FLAG_HASHPSPOOL; + ss << "unset"; + } + ss << " pool " << pool << " flag hashpspool"; } return 0; } -- cgit v1.2.1