summaryrefslogtreecommitdiffstats
path: root/lib/utils_disk.c
diff options
context:
space:
mode:
authorMatthias Eble <psychotrahe@users.sourceforge.net>2010-11-15 23:59:35 +0100
committerMatthias Eble <psychotrahe@users.sourceforge.net>2010-11-15 23:59:35 +0100
commit77f2c84d2f599d86a60586494169dcab17853e3a (patch)
treee964e05b70aff5f5b9ee7ff457b7c165db5f66aa /lib/utils_disk.c
parent896962a1ad1b7d7c75d42c565b06cc799feb0a7c (diff)
downloadmonitoring-plugins-77f2c84d2f599d86a60586494169dcab17853e3a.tar.gz
Fix check_disk free space calculation if blocksizes differ within a disk group (Bekar - #2973603)
Various values (dused_pct, dfree_pct, inodes_free, inodes_total, ...) are now carried in the parameter_list structure. Assignments have been moved to a subroutine preventing code redundancies. Group metrics are now calculated based on units rather than blocks. This fixes freespace calculation when blocksizes differ within a group.
Diffstat (limited to 'lib/utils_disk.c')
-rw-r--r--lib/utils_disk.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/utils_disk.c b/lib/utils_disk.c
index 3d20f4d4..5be2b2c0 100644
--- a/lib/utils_disk.c
+++ b/lib/utils_disk.c
@@ -58,6 +58,19 @@ np_add_parameter(struct parameter_list **list, const char *name)
58 new_path->usedinodes_percent = NULL; 58 new_path->usedinodes_percent = NULL;
59 new_path->freeinodes_percent = NULL; 59 new_path->freeinodes_percent = NULL;
60 new_path->group = NULL; 60 new_path->group = NULL;
61 new_path->dfree_pct = -1;
62 new_path->dused_pct = -1;
63 new_path->total = 0;
64 new_path->available = 0;
65 new_path->available_to_root = 0;
66 new_path->used = 0;
67 new_path->dused_units = 0;
68 new_path->dfree_units = 0;
69 new_path->dtotal_units = 0;
70 new_path->inodes_total = 0;
71 new_path->inodes_free = 0;
72 new_path->dused_inodes_percent = 0;
73 new_path->dfree_inodes_percent = 0;
61 74
62 if (current == NULL) { 75 if (current == NULL) {
63 *list = new_path; 76 *list = new_path;