]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: OSDMonitor: do not allow changing an erasure-coded pool's size 1144/head
authorJoao Eduardo Luis <joao.luis@inktank.com>
Sun, 2 Feb 2014 14:02:17 +0000 (14:02 +0000)
committerLoic Dachary <loic@dachary.org>
Tue, 4 Feb 2014 09:22:48 +0000 (10:22 +0100)
Fixes: 7277
Reviewed-by: Loic Dachary <loic@dachary.org>
Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
qa/workunits/cephtool/test.sh
src/mon/OSDMonitor.cc

index 58d0e94a5214ab42e201c20fd912bff75f45c0cc..8419c7f93153718a8cb98830342ef44c0f103434 100755 (executable)
@@ -369,6 +369,13 @@ ceph osd pool set data size $new_size
 ceph osd pool get data size | grep "size: $new_size"
 ceph osd pool set data size $old_size
 
+ceph osd crush rule create-erasure ec_ruleset
+ceph osd pool create pool_erasure 12 12 erasure crush_ruleset=ec_ruleset
+set +e
+ceph osd pool set pool_erasure size 4444 2>$TMPFILE
+check_response $? 38 'can not change the size'
+set -e
+
 ceph osd pool set data hashpspool true
 ceph osd pool set data hashpspool false
 ceph osd pool set data hashpspool 0
index b481a5809c666fed72f915a7de3953702f3240d2..a793e40b4a87dd8b8c28cba647310d4f2fdf6856 100644 (file)
@@ -3010,6 +3010,10 @@ int OSDMonitor::prepare_command_pool_set(map<string,cmd_vartype> &cmdmap,
   }
 
   if (var == "size") {
+    if (p.type == pg_pool_t::TYPE_ERASURE) {
+      ss << "can not change the size of an erasure-coded pool";
+      return -ENOSYS;
+    }
     if (interr.length()) {
       ss << "error parsing integer value '" << val << "': " << interr;
       return -EINVAL;