]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: fix divide by zero when pg_num adjusted and no osds
authorSage Weil <sage@redhat.com>
Wed, 13 Aug 2014 20:32:29 +0000 (13:32 -0700)
committerSage Weil <sage@redhat.com>
Wed, 13 Aug 2014 20:32:29 +0000 (13:32 -0700)
Fixes: #9052
Backport: firefly, dumpling
Signed-off-by: Sage Weil <sage@redhat.com>
Manual backport of 239401db7b51541a57c59a261b89e0f05347c32d

src/mon/OSDMonitor.cc

index 48d9e6c2d7db1bcb9a9daae31769e6ea5fee9e9c..1fae902106cb2e1f4bba2209e9eb4117a5fc701a 100644 (file)
@@ -3640,7 +3640,7 @@ done:
        pending_inc.new_pools[pool].crash_replay_interval = n;
        ss << "set pool " << pool << " to crash_replay_interval to " << n;
       } else if (var == "pg_num") {
-       int expected_osds = MIN(p->get_pg_num(), osdmap.get_num_osds());
+       int expected_osds = MAX(1, MIN(p->get_pg_num(), osdmap.get_num_osds()));
        int64_t new_pgs = n - p->get_pg_num();
        int64_t pgs_per_osd = new_pgs / expected_osds;
        if (n <= p->get_pg_num()) {