]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: fix checks on mds add_data_pool 5323/head
authorJohn Spray <john.spray@redhat.com>
Thu, 23 Jul 2015 09:15:56 +0000 (10:15 +0100)
committerJohn Spray <john.spray@redhat.com>
Thu, 23 Jul 2015 13:08:33 +0000 (14:08 +0100)
Use same _check_pool helper as during fs creation.

Fixes: #12426
Signed-off-by: John Spray <john.spray@redhat.com>
src/mon/MDSMonitor.cc

index 0c123c69d3d8e286e7f263a9c58863917f104bfd..3e39d7b17a47770dcef0d3b3f4be4cac395a4714 100644 (file)
@@ -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);