Index: LVM2.2.02.119/lib/mm/memlock.c
|
|
===================================================================
|
|
--- 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
|
|
|
|
if ((areas[area] = malloc(_size_malloc_tmp)))
|
|
_touch_memory(areas[area], _size_malloc_tmp);
|
|
|
|
+#ifdef __GLIBC__
|
|
inf = mallinfo();
|
|
|
|
if (hblks < inf.hblks) {
|
|
@@ -176,9 +179,12 @@ static void _allocate_memory(void)
|
|
free(areas[area]);
|
|
_size_malloc_tmp /= 2;
|
|
} else {
|
|
+#endif
|
|
++ area;
|
|
missing -= _size_malloc_tmp;
|
|
+#ifdef __GLIBC__
|
|
}
|
|
+#endif
|
|
|
|
if (area == max_areas && missing > 0) {
|
|
/* Too bad. Warn the user and proceed, as things are
|
|
@@ -467,8 +473,13 @@ static void _lock_mem(struct cmd_context
|
|
* will not block memory locked thread
|
|
* Note: assuming _memlock_count_daemon is updated before _memlock_count
|
|
*/
|
|
+#ifdef __GLIBC__
|
|
_use_mlockall = _memlock_count_daemon ? 1 :
|
|
find_config_tree_bool(cmd, activation_use_mlockall_CFG, NULL);
|
|
+#else
|
|
+ /* always use mlockall on musl */
|
|
+ _use_mlockall = 1;
|
|
+#endif
|
|
|
|
if (!_use_mlockall) {
|
|
if (!*_procselfmaps &&
|