]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: PGMonitor: fix division by zero on stats dump
authorJoao Eduardo Luis <joao@redhat.com>
Fri, 16 Jan 2015 18:12:42 +0000 (18:12 +0000)
committerLoic Dachary <ldachary@redhat.com>
Fri, 27 Feb 2015 17:28:47 +0000 (18:28 +0100)
Signed-off-by: Joao Eduardo Luis <joao@redhat.com>
(cherry picked from commit 50547dc3c00b7556e26b9a44ec68640c5c3a2384)

src/mon/PGMonitor.cc

index 364ad20cfc106c6f63971aff7e00ada7b47a39ef..159fd9b4e590e35d98af5ed9cd06e4f95287a175 100644 (file)
@@ -1234,7 +1234,10 @@ void PGMonitor::dump_object_stat_sum(TextTable &tbl, Formatter *f,
   } else {
     tbl << stringify(si_t(sum.num_bytes));
     int64_t kb_used = SHIFT_ROUND_UP(sum.num_bytes, 10);
-    tbl << percentify(((float)kb_used / pg_map.osd_sum.kb)*100);
+    float used = 0.0;
+    if (pg_map.osd_sum.kb > 0)
+      used = (float)kb_used / pg_map.osd_sum.kb;
+    tbl << percentify(used*100);
     tbl << si_t(avail);
     tbl << sum.num_objects;
     if (verbose) {
@@ -1401,7 +1404,11 @@ void PGMonitor::dump_fs_stats(stringstream &ss, Formatter *f, bool verbose)
     tbl << stringify(si_t(pg_map.osd_sum.kb*1024))
         << stringify(si_t(pg_map.osd_sum.kb_avail*1024))
         << stringify(si_t(pg_map.osd_sum.kb_used*1024));
-    tbl << percentify(((float)pg_map.osd_sum.kb_used / pg_map.osd_sum.kb)*100);
+    float used = 0.0;
+    if (pg_map.osd_sum.kb > 0) {
+      used = ((float)pg_map.osd_sum.kb_used / pg_map.osd_sum.kb);
+    }
+    tbl << percentify(used*100);
     if (verbose) {
       tbl << stringify(si_t(pg_map.pg_sum.stats.sum.num_objects));
     }