lvm2: update to version 2.03.35 and libdm 1.02.199
authorDaniel Golle <[email protected]>
Thu, 1 Aug 2024 20:00:00 +0000 (21:00 +0100)
committerDaniel Golle <[email protected]>
Fri, 2 Aug 2024 00:38:45 +0000 (01:38 +0100)
Version 2.03.25 - 12nd July 2024
================================
  Utilize more radix_tree instead of dm_hash and btree.
  Refactor DM uuid caching from device_mapper directory.
  Enhance checking for DM uuid device.
  Fix lvm shell command completion on tab key (2.03.24).
  Avoid lockd_vg call to lvmlockd for local VGs.
  Allow forced change of locktype from none.
  Handle OPTIONS defined in /etc/sysconfig/lvmlockd.

Version 2.03.24 - 16th May 2024
===============================
  Lvconvert supports VDO options for thin-pool with vdo conversion.
  Improve placement to .data.rel.ro and .rodata sections.
  Fix support for -y and -W when creating thinpool with vdo.
  Bettter support for runtime valgrind detection.
  Allow command interruption when communicating with dmeventd.
  Fix resize of VDO volume used for thin pool data volume.
  Use -Wl,-z,now and -Wl,--as-needed for compilation by default.
  Require 3.7 as minimal version for sanlock.
  Share code for closing opened desriptors on program startup.
  Fix memleak in lvmcache.
  Add configure --with-default-event-activation=ON setting.
  Fix return value from reporter function when hitting internal error.
  Skip checking of pools for lvremove and vgremove commands.
  VDO modprobes dm-vdo for 6.9 kernel and kvdo for older kernel version.
  Fix lvs reporting for VDO volumes with new upstream kernel driver.
  Don't import DM_UDEV_DISABLE_OTHER_RULES_FLAG in LVM rules, DM rules cover it.
  Fix table line generation for cache snapshots using cachevol.
  Enhance lvconvert support for external origins stacking.
  When swapping LV names also swap properties like hostname, time and data.
  Fix removal of stacked external origins.
  Lock filesystem when converting volume to read-only external origin.
  Support external origin between different thin-pool.
  Improve validation of acceptable volumes for external origins.
  Reduce amount of preloaded devices for complex device trees.
  Avoid logging problems from monitoring snapshots with inactive origins.
  Check for cache policy module presence in kernel's builtin modules file.
  Add configure --with-modulesdir to select kernel modules directory.
  Support creation of thin-pool with VDO use for its data volume.

libdm:

Version 1.02.199 - 12nd July 2024
=================================

Version 1.02.198 - 16th May 2024
================================
  Fix static only compilation of libdevmapper.a and dmsetup tool.
  Use better code for closing opened descriptors when starting dmeventd.
  Correct dmeventd -R for systemd environment.
  Restart of dmeventd -R checks pid file to detect running dmeventd first.
  Query with dmeventd -i quickly ends when there is no running dmeventd.
  Enhance dm_get_status_raid to handle mismatching status or reported legs.
  Create /dev/disk/by-label symlinks for DM devs that have crypto as next layer.
  Persist udev db for DM devs on cleanup used in initrd to rootfs transition.
  Process synthetic udev events other than 'add/change' as 'change' events.
  Increase DM_UDEV_RULES_VSN to 3 to indicate changed udev rules.
  Rename DM_NOSCAN to .DM_NOSCAN so it's not stored in udev db.
  Rename DM_SUSPENDED to .DM_SUSPENDED so it's not stored in udev db.
  Do not import DM_UDEV_DISABLE_OTHER_RULES_FLAG from db in 10-dm-disk.rules.
  Test DISK_RO after importing properties from db in 10-dm.rules.
  Also import ID_FS_TYPE in 13-dm-disk.rules from db if needed.

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

index 42cc59a3171c43c71a9c1c520e751537ee818a0d..e9ed9336742ff89aabaf0e67d9a03109deed1f06 100644 (file)
@@ -9,13 +9,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=LVM2
-PKG_VERSION:=2.03.23
-PKG_VERSION_DM:=1.02.197
+PKG_VERSION:=2.03.25
+PKG_VERSION_DM:=1.02.199
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME).$(PKG_VERSION).tgz
 PKG_SOURCE_URL:=https://sourceware.org/pub/lvm2
-PKG_HASH:=74e794a9e9dee1bcf8a2065f65b9196c44fdf321e22d63b98ed7de8c9aa17a5d
+PKG_HASH:=4bea6fd2e5af9cdb3e27b48b4efa8d89210d9bfa13df900e092e404720a59b1d
 PKG_BUILD_DIR:=$(BUILD_DIR)/lvm2-$(BUILD_VARIANT)/$(PKG_NAME).$(PKG_VERSION)
 
 PKG_MAINTAINER:=Daniel Golle <[email protected]>
index 9750659232a985e2bd2cc5f0eecf8a5c85d981e9..ea245b10c4d17110bfff10218adb95de9c01fc3f 100644 (file)
@@ -1,26 +1,40 @@
 --- a/lib/commands/toolcontext.c
 +++ b/lib/commands/toolcontext.c
-@@ -1709,7 +1709,7 @@ struct cmd_context *create_toolcontext(u
+@@ -1660,6 +1660,7 @@ struct cmd_context *create_toolcontext(u
        /* FIXME Make this configurable? */
        reset_lvm_errno(1);
  
--#ifndef VALGRIND_POOL
-+#if defined(__GLIBC__) && !defined(VALGRIND_POOL)
++#ifdef __GLIBC__
        /* Set in/out stream buffering before glibc */
        if (set_buffering
- #ifdef SYS_gettid
-@@ -2085,7 +2085,7 @@ void destroy_toolcontext(struct cmd_cont
+           && !cmd->running_on_valgrind /* Skipping within valgrind execution. */
+@@ -1704,6 +1705,7 @@ struct cmd_context *create_toolcontext(u
+       } else if (!set_buffering)
+               /* Without buffering, must not use stdin/stdout */
+               init_silent(1);
++#endif
+       /*
+        * Environment variable LVM_SYSTEM_DIR overrides this below.
+@@ -2038,6 +2040,7 @@ void destroy_toolcontext(struct cmd_cont
+       if (cmd->cft_def_hash)
                dm_hash_destroy(cmd->cft_def_hash);
  
-       dm_device_list_destroy(&cmd->cache_dm_devs);
--#ifndef VALGRIND_POOL
-+#if defined(__GLIBC__) && !defined(VALGRIND_POOL)
-       if (cmd->linebuffer) {
++#ifdef __GLIBC__
+       if (!cmd->running_on_valgrind && cmd->linebuffer) {
+               int flags;
                /* Reset stream buffering to defaults */
-               if (is_valid_fd(STDIN_FILENO) &&
+@@ -2061,6 +2064,7 @@ void destroy_toolcontext(struct cmd_cont
+               free(cmd->linebuffer);
+       }
++#endif
+       destroy_config_context(cmd);
 --- a/tools/lvmcmdline.c
 +++ b/tools/lvmcmdline.c
-@@ -3437,6 +3437,7 @@ int lvm_split(char *str, int *argc, char
+@@ -3375,6 +3375,7 @@ int lvm_split(char *str, int *argc, char
  /* Make sure we have always valid filedescriptors 0,1,2 */
  static int _check_standard_fds(void)
  {
@@ -28,7 +42,7 @@
        int err = is_valid_fd(STDERR_FILENO);
  
        if (!is_valid_fd(STDIN_FILENO) &&
-@@ -3463,6 +3464,12 @@ static int _check_standard_fds(void)
+@@ -3401,6 +3402,12 @@ static int _check_standard_fds(void)
                       strerror(errno));
                return 0;
        }
index 6a0e025be44d3867bc9070c4f6a0756a5fa1b901..b927293f258aad4fd6748fe73d632901cb490f8b 100644 (file)
@@ -1,8 +1,8 @@
 --- a/lib/mm/memlock.c
 +++ b/lib/mm/memlock.c
-@@ -199,12 +199,15 @@ static void _allocate_memory(void)
-          *  memory on free(), this is good enough for our purposes.
-          */
+@@ -195,12 +195,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();
@@ -16,7 +16,7 @@
                inf = MALLINFO();
  
                if (hblks < inf.hblks) {
-@@ -214,9 +217,12 @@ static void _allocate_memory(void)
+@@ -210,9 +213,12 @@ static void _allocate_memory(void)
                        free(areas[area]);
                        _size_malloc_tmp /= 2;
                } else {
@@ -29,7 +29,7 @@
  
                if (area == max_areas && missing > 0) {
                        /* Too bad. Warn the user and proceed, as things are
-@@ -537,8 +543,13 @@ static void _lock_mem(struct cmd_context
+@@ -529,8 +535,13 @@ static void _lock_mem(struct cmd_context
         * will not block memory locked thread
         * Note: assuming _memlock_count_daemon is updated before _memlock_count
         */