From: John Spray Date: Thu, 23 Jul 2015 09:15:56 +0000 (+0100) Subject: mon: fix checks on mds add_data_pool X-Git-Tag: v9.0.3~15^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=329741ec238d6af4b69bc838ba667be232741b3d;p=ceph.git mon: fix checks on mds add_data_pool Use same _check_pool helper as during fs creation. Fixes: #12426 Signed-off-by: John Spray --- diff --git a/src/mon/MDSMonitor.cc b/src/mon/MDSMonitor.cc index 0c123c69d3d8e..3e39d7b17a477 100644 --- a/src/mon/MDSMonitor.cc +++ b/src/mon/MDSMonitor.cc @@ -1680,22 +1680,14 @@ int MDSMonitor::filesystem_command( return -ENOENT; } } - const pg_pool_t *p = mon->osdmon()->osdmap.get_pg_pool(poolid); - if (!p) { - ss << "pool '" << poolname << "' does not exist"; - return -ENOENT; - } - if (p->is_erasure()) { - // I'm sorry Dave, I'm afraid I can't do that - poolid = -1; - ss << "can't use pool '" << poolname << "' as it's an erasure-code pool"; - return -EINVAL; - } - if (poolid >= 0) { - pending_mdsmap.add_data_pool(poolid); - ss << "added data pool " << poolid << " to mdsmap"; - r = 0; + + r = _check_pool(poolid, &ss); + if (r != 0) { + return r; } + + pending_mdsmap.add_data_pool(poolid); + ss << "added data pool " << poolid << " to mdsmap"; } else if (prefix == "mds remove_data_pool") { string poolname; cmd_getval(g_ceph_context, cmdmap, "pool", poolname);