You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

47 lines
1.3 KiB

  1. Index: LVM2.2.02.119/lib/mm/memlock.c
  2. ===================================================================
  3. --- LVM2.2.02.119.orig/lib/mm/memlock.c
  4. +++ LVM2.2.02.119/lib/mm/memlock.c
  5. @@ -161,12 +161,15 @@ static void _allocate_memory(void)
  6. * memory on free(), this is good enough for our purposes.
  7. */
  8. while (missing > 0) {
  9. +#ifdef __GLIBC__
  10. struct mallinfo inf = mallinfo();
  11. hblks = inf.hblks;
  12. +#endif
  13. if ((areas[area] = malloc(_size_malloc_tmp)))
  14. _touch_memory(areas[area], _size_malloc_tmp);
  15. +#ifdef __GLIBC__
  16. inf = mallinfo();
  17. if (hblks < inf.hblks) {
  18. @@ -176,9 +179,12 @@ static void _allocate_memory(void)
  19. free(areas[area]);
  20. _size_malloc_tmp /= 2;
  21. } else {
  22. +#endif
  23. ++ area;
  24. missing -= _size_malloc_tmp;
  25. +#ifdef __GLIBC__
  26. }
  27. +#endif
  28. if (area == max_areas && missing > 0) {
  29. /* Too bad. Warn the user and proceed, as things are
  30. @@ -467,8 +473,13 @@ static void _lock_mem(struct cmd_context
  31. * will not block memory locked thread
  32. * Note: assuming _memlock_count_daemon is updated before _memlock_count
  33. */
  34. +#ifdef __GLIBC__
  35. _use_mlockall = _memlock_count_daemon ? 1 :
  36. find_config_tree_bool(cmd, activation_use_mlockall_CFG, NULL);
  37. +#else
  38. + /* always use mlockall on musl */
  39. + _use_mlockall = 1;
  40. +#endif
  41. if (!_use_mlockall) {
  42. if (!*_procselfmaps &&