From 222945c67210ab417c1a34804ee21fcb75272b96 Mon Sep 17 00:00:00 2001 From: Craig Small Date: Sun, 1 May 2016 16:15:49 +1000 Subject: [PATCH] library: provide ref and unref for diskstat While procps_diskstat_ref and procps_diskstat_unref were declared they actually weren't implemented in the library. Linking some binary that used these functions gave the following errors: CCLD vmstat vmstat.o: In function `disksum_format': vmstat.c:719: undefined reference to `procps_diskstat_unref' vmstat.o: In function `diskformat': vmstat.c:591: undefined reference to `procps_diskstat_unref' --- proc/diskstat.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/proc/diskstat.c b/proc/diskstat.c index 2b8409b0..bf2db080 100644 --- a/proc/diskstat.c +++ b/proc/diskstat.c @@ -226,6 +226,29 @@ PROCPS_EXPORT int procps_diskstat_read ( return 0; } +PROCPS_EXPORT int procps_diskstat_ref ( + struct procps_diskstat *info) +{ + if (info == NULL) + return -EINVAL; + info->refcount++; + return info->refcount; +} + +PROCPS_EXPORT int procps_diskstat_unref ( + struct procps_diskstat **info) +{ + if (info == NULL || *info == NULL) + return -EINVAL; + (*info)->refcount--; + if ((*info)->refcount == 0) { + free(*info); + *info = NULL; + return 0; + } + return (*info)->refcount; +} + /* * procps_diskstat_dev_count: *