]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: fix checks on mds add_data_pool 5766/head
authorJohn Spray <john.spray@redhat.com>
Thu, 23 Jul 2015 09:15:56 +0000 (10:15 +0100)
committerLoic Dachary <ldachary@redhat.com>
Wed, 2 Sep 2015 20:13:43 +0000 (22:13 +0200)
Use same _check_pool helper as during fs creation.

Fixes: #12426
Signed-off-by: John Spray <john.spray@redhat.com>
(cherry picked from commit 329741ec238d6af4b69bc838ba667be232741b3d)

src/mon/MDSMonitor.cc

index 4cf26cd41b91a5a7cf30944264579eeeaf66c80a..c12008f17894c64c79e47d821420157a36e972b2 100644 (file)
@@ -1570,22 +1570,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);