lvm2: better workaround for missing mallinfo on musl
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
This commit is contained in:
parent
ecb702d79b
commit
142a24a10b
1 changed files with 26 additions and 11 deletions
|
@ -1,13 +1,28 @@
|
|||
Index: LVM2.2.02.118/lib/mm/memlock.c
|
||||
Index: LVM2.2.02.119/lib/mm/memlock.c
|
||||
===================================================================
|
||||
--- LVM2.2.02.118.orig/lib/mm/memlock.c
|
||||
+++ LVM2.2.02.118/lib/mm/memlock.c
|
||||
@@ -137,7 +137,7 @@ static void _touch_memory(void *mem, siz
|
||||
--- LVM2.2.02.119.orig/lib/mm/memlock.c
|
||||
+++ LVM2.2.02.119/lib/mm/memlock.c
|
||||
@@ -161,12 +161,15 @@ static void _allocate_memory(void)
|
||||
* memory on free(), this is good enough for our purposes.
|
||||
*/
|
||||
while (missing > 0) {
|
||||
+#ifdef __GLIBC__
|
||||
struct mallinfo inf = mallinfo();
|
||||
hblks = inf.hblks;
|
||||
+#endif
|
||||
|
||||
static void _allocate_memory(void)
|
||||
{
|
||||
-#ifndef VALGRIND_POOL
|
||||
+#if defined(__GLIBC__) && !defined(VALGRIND_POOL)
|
||||
void *stack_mem;
|
||||
struct rlimit limit;
|
||||
int i, area = 0, missing = _size_malloc_tmp, max_areas = 32, hblks;
|
||||
if ((areas[area] = malloc(_size_malloc_tmp)))
|
||||
_touch_memory(areas[area], _size_malloc_tmp);
|
||||
|
||||
+#ifdef __GLIBC__
|
||||
inf = mallinfo();
|
||||
|
||||
if (hblks < inf.hblks) {
|
||||
@@ -179,6 +182,7 @@ static void _allocate_memory(void)
|
||||
++ area;
|
||||
missing -= _size_malloc_tmp;
|
||||
}
|
||||
+#endif
|
||||
|
||||
if (area == max_areas && missing > 0) {
|
||||
/* Too bad. Warn the user and proceed, as things are
|
||||
|
|
Loading…
Reference in a new issue