]> 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)
committerSage Weil <sage@redhat.com>
Tue, 12 Mar 2019 14:14:36 +0000 (09:14 -0500)
Signed-off-by: Sage Weil <sage@redhat.com>
src/mon/OSDMonitor.cc

index efbc8c1257c66ac8873272d2f09756d311258d17..96c7189140b121d78915ef893c026748475f5b96 100644 (file)
@@ -6660,7 +6660,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;