lvm2: finally fix memory locking issues on musl
authorDaniel Golle <[email protected]>
Sun, 3 May 2015 13:58:52 +0000 (15:58 +0200)
committerDaniel Golle <[email protected]>
Sun, 3 May 2015 13:59:58 +0000 (15:59 +0200)
Always use mlockall fixes it, still trying to keep everything else
as untouched as possible.

Signed-off-by: Daniel Golle <[email protected]>
utils/lvm2/Makefile
utils/lvm2/patches/003-no-mallinfo.patch

index 819bb6d7476aa5ddf8c97a53b3b66cd55930bcf9..4aee2bd9e2ced77ed640533a3880626c29c7e522 100644 (file)
@@ -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
index e81dbe9e447b9971053951e6fe138dea17931ffb..d37a5bfa37ac861789645099113888f65a92cf75 100644 (file)
@@ -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 &&