From: Sage Weil Date: Thu, 29 Dec 2016 15:38:59 +0000 (-0600) Subject: Merge pull request #12403 from liewegas/wip-mon-mgr-cleanups X-Git-Tag: v12.0.0~338 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=f706819d6aee6457592758db9fc682948ad49205;p=ceph-ci.git Merge pull request #12403 from liewegas/wip-mon-mgr-cleanups mon: clean up some osdmon/pgmon interactions Reviewed-by: Kefu Chai --- f706819d6aee6457592758db9fc682948ad49205 diff --cc src/mon/OSDMonitor.cc index 8c6c5fb0fa8,e9ca79fdeb7..f4474a5220b --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@@ -5326,29 -5181,7 +5201,21 @@@ int OSDMonitor::prepare_command_pool_se ss << "specified pgp_num " << n << " > pg_num " << p.get_pg_num(); return -EINVAL; } - for(set::iterator i = mon->pgmon()->pg_map.creating_pgs.begin(); - i != mon->pgmon()->pg_map.creating_pgs.end(); - ++i) { - if (i->m_pool == static_cast(pool)) { - ss << "currently creating pgs, wait"; - return -EBUSY; - } - } p.set_pgp_num(n); + } else if (var == "crush_rule") { + int id = osdmap.crush->get_rule_id(val); + if (id == -ENOENT) { + ss << "crush rule " << val << " does not exist"; + return -ENOENT; + } + if (id < 0) { + ss << cpp_strerror(id); + return -ENOENT; + } + if (!osdmap.crush->check_crush_rule(id, p.get_type(), p.get_size(), ss)) { + return -EINVAL; + } + p.crush_ruleset = id; } else if (var == "crush_ruleset") { if (interr.length()) { ss << "error parsing integer value '" << val << "': " << interr;