From 855fdd21d1259fb10f059d7f5217aa9d20bb5c25 Mon Sep 17 00:00:00 2001 From: Daniel Golle Date: Sun, 3 May 2015 15:58:52 +0200 Subject: [PATCH] lvm2: finally fix memory locking issues on musl Always use mlockall fixes it, still trying to keep everything else as untouched as possible. Signed-off-by: Daniel Golle --- utils/lvm2/Makefile | 2 +- utils/lvm2/patches/003-no-mallinfo.patch | 21 ++++++++++++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/utils/lvm2/Makefile b/utils/lvm2/Makefile index 819bb6d74..4aee2bd9e 100644 --- a/utils/lvm2/Makefile +++ b/utils/lvm2/Makefile @@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=LVM2 PKG_VERSION:=2.02.119 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_LICENSE:=GPL-2.0 LGPL-2.1 PKG_SOURCE:=$(PKG_NAME).$(PKG_VERSION).tgz diff --git a/utils/lvm2/patches/003-no-mallinfo.patch b/utils/lvm2/patches/003-no-mallinfo.patch index e81dbe9e4..d37a5bfa3 100644 --- a/utils/lvm2/patches/003-no-mallinfo.patch +++ b/utils/lvm2/patches/003-no-mallinfo.patch @@ -18,11 +18,30 @@ Index: LVM2.2.02.119/lib/mm/memlock.c inf = mallinfo(); if (hblks < inf.hblks) { -@@ -179,6 +182,7 @@ static void _allocate_memory(void) +@@ -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 &&