summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/libmemstat/memstat.c9
-rw-r--r--lib/libmemstat/memstat_internal.h1
-rw-r--r--lib/libmemstat/memstat_malloc.c2
-rw-r--r--lib/libmemstat/memstat_uma.c4
4 files changed, 12 insertions, 4 deletions
diff --git a/lib/libmemstat/memstat.c b/lib/libmemstat/memstat.c
index f32541f..de8ae65 100644
--- a/lib/libmemstat/memstat.c
+++ b/lib/libmemstat/memstat.c
@@ -88,7 +88,7 @@ memstat_mtl_next(struct memory_type *mtp)
}
void
-memstat_mtl_free(struct memory_type_list *list)
+_memstat_mtl_empty(struct memory_type_list *list)
{
struct memory_type *mtp;
@@ -96,6 +96,13 @@ memstat_mtl_free(struct memory_type_list *list)
LIST_REMOVE(mtp, mt_list);
free(mtp);
}
+}
+
+void
+memstat_mtl_free(struct memory_type_list *list)
+{
+
+ _memstat_mtl_empty(list);
free(list);
}
diff --git a/lib/libmemstat/memstat_internal.h b/lib/libmemstat/memstat_internal.h
index 838eaa6..7123518 100644
--- a/lib/libmemstat/memstat_internal.h
+++ b/lib/libmemstat/memstat_internal.h
@@ -116,6 +116,7 @@ struct memory_type_list {
int mtl_error;
};
+void _memstat_mtl_empty(struct memory_type_list *list);
struct memory_type *_memstat_mt_allocate(struct memory_type_list *list,
int allocator, const char *name);
void _memstat_mt_reset_stats(struct memory_type *mtp);
diff --git a/lib/libmemstat/memstat_malloc.c b/lib/libmemstat/memstat_malloc.c
index 4170812..e94d005 100644
--- a/lib/libmemstat/memstat_malloc.c
+++ b/lib/libmemstat/memstat_malloc.c
@@ -175,7 +175,7 @@ retry:
mtp = _memstat_mt_allocate(list, ALLOCATOR_MALLOC,
mthp->mth_name);
if (mtp == NULL) {
- memstat_mtl_free(list);
+ _memstat_mtl_empty(list);
free(buffer);
list->mtl_error = MEMSTAT_ERROR_NOMEMORY;
return (-1);
diff --git a/lib/libmemstat/memstat_uma.c b/lib/libmemstat/memstat_uma.c
index 6d5407c..f1fb710 100644
--- a/lib/libmemstat/memstat_uma.c
+++ b/lib/libmemstat/memstat_uma.c
@@ -176,7 +176,7 @@ retry:
mtp = _memstat_mt_allocate(list, ALLOCATOR_UMA,
uthp->uth_name);
if (mtp == NULL) {
- memstat_mtl_free(list);
+ _memstat_mtl_empty(list);
free(buffer);
list->mtl_error = MEMSTAT_ERROR_NOMEMORY;
return (-1);
@@ -218,8 +218,8 @@ retry:
* items only in the primary zone.
*/
if (!(uthp->uth_zone_flags & UTH_ZONE_SECONDARY)) {
- mtp->mt_free += mtp->mt_kegfree;
mtp->mt_kegfree = uthp->uth_keg_free;
+ mtp->mt_free += mtp->mt_kegfree;
}
mtp->mt_free += mtp->mt_zonefree;
}
OpenPOWER on IntegriCloud