X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Flvm.c;h=5e130d80c75c145289d1d853902176a3da05c9ba;hb=f66916deea905254061bb07245e007471faf2ecf;hp=cb073321240e8ed8c379e8abefe704957bc249d3;hpb=dd5d9dcef333c5de208388dc8a42e7eae68a4d32;p=collectd.git diff --git a/src/lvm.c b/src/lvm.c index cb073321..5e130d80 100644 --- a/src/lvm.c +++ b/src/lvm.c @@ -18,12 +18,13 @@ * * Authors: * Chad Malfait - * Benjamin Gilbert + * Benjamin Gilbert **/ #include #include "collectd.h" + #include "common.h" #include "plugin.h" @@ -54,15 +55,11 @@ static char const *get_lv_property_string(lv_t lv, char const *property) static void lvm_submit (char const *plugin_instance, char const *type_instance, uint64_t ivalue) { - value_t v; value_list_t vl = VALUE_LIST_INIT; - v.gauge = (gauge_t) ivalue; - - vl.values = &v; + vl.values = &(value_t) { .gauge = (gauge_t) ivalue }; vl.values_len = 1; - sstrncpy(vl.host, hostname_g, sizeof (vl.host)); sstrncpy(vl.plugin, "lvm", sizeof (vl.plugin)); sstrncpy(vl.plugin_instance, plugin_instance, sizeof (vl.plugin_instance)); sstrncpy(vl.type, "df_complex", sizeof (vl.type)); @@ -119,6 +116,11 @@ static void vg_read(vg_t vg, char const *vg_name) lvm_submit (vg_name, "free", lvm_vg_get_free_size(vg)); lvs = lvm_vg_list_lvs(vg); + if (!lvs) { + /* no VGs are defined, which is not an error per se */ + return; + } + dm_list_iterate_items(lvl, lvs) { name = lvm_lv_get_name(lvl->lv); attrs = get_lv_property_string(lvl->lv, "lv_attr");