]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon/OSDMonitor: set ec min_size to k + min(1, m - 1)
authorSage Weil <sage@redhat.com>
Mon, 11 Mar 2019 17:52:23 +0000 (12:52 -0500)
committerNathan Cutler <ncutler@suse.com>
Thu, 11 Jul 2019 14:35:21 +0000 (16:35 +0200)
Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit 7f49be2104f0a5df894a53e200c431c527781f9c)

src/mon/OSDMonitor.cc

index 0c99b03871b73f6e822814b4926c071d54992af9..c0bdb483d351b70746742d4fa811a262152b1bfa 100644 (file)
@@ -6295,7 +6295,11 @@ int OSDMonitor::prepare_pool_size(const unsigned pool_type,
       err = get_erasure_code(erasure_code_profile, &erasure_code, ss);
       if (err == 0) {
        *size = erasure_code->get_chunk_count();
-       *min_size = std::min(erasure_code->get_data_chunk_count() + 1, *size);
+       *min_size =
+         erasure_code->get_data_chunk_count() +
+         std::min<int>(1, erasure_code->get_coding_chunk_count() - 1);
+       assert(*min_size <= *size);
+       assert(*min_size >= erasure_code->get_data_chunk_count());
       }
     }
     break;