]> git.apps.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)
committerJoao Eduardo Luis <joao@redhat.com>
Fri, 16 Jan 2015 18:12:42 +0000 (18:12 +0000)
Signed-off-by: Joao Eduardo Luis <joao@redhat.com>
src/mon/PGMonitor.cc

index 87f32d69e28ca51854214aca66126f71eaaab541..32352b5c8753bdbcb6de218b9f246f3edd0ef0c7 100644 (file)
@@ -1269,7 +1269,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) {
@@ -1419,7 +1422,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));
     }