Additional patch for 9.5.0 lvm2
Resolves: RHEL-8377
This commit is contained in:
parent
2c09bccc24
commit
51031feb7f
@ -0,0 +1,60 @@
|
|||||||
|
From a5672ff088a027af04dc5586926841a48b693ee0 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Heinz Mauelshagen <heinzm@redhat.com>
|
||||||
|
Date: Wed, 17 Jul 2024 17:08:20 +0200
|
||||||
|
Subject: [PATCH 14/14] lv_manip: avoid unreleased memory pool(s) message on
|
||||||
|
RAID extend
|
||||||
|
|
||||||
|
In case of different PV sizes in a VG, the lvm2 allocator falls short
|
||||||
|
to define extended segments resiliently asked for 100%FREE RaidLV extension
|
||||||
|
and a RAID distinct allocation check fails. Fix is to release a memory pool
|
||||||
|
on the resulting error path.
|
||||||
|
|
||||||
|
Until the lvm2 allocator gets enhanced (WIP) to do such complex (and other)
|
||||||
|
allocations proper, a workaround is to extend a RaidLV to any free space on
|
||||||
|
its already allocated PVs by defining those PVs on the lvextend command line
|
||||||
|
then iteratively run further such lvextend commands to extend it to its
|
||||||
|
final intended size. Mind, this may be a non-trivial extension interation.
|
||||||
|
|
||||||
|
(cherry picked from commit 557b2850cef7fa49e2cbacd36e77f679181f09ae)
|
||||||
|
---
|
||||||
|
WHATS_NEW | 5 +++++
|
||||||
|
lib/metadata/lv_manip.c | 3 ++-
|
||||||
|
2 files changed, 7 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/WHATS_NEW b/WHATS_NEW
|
||||||
|
index 1d56f8675..8647a8f87 100644
|
||||||
|
--- a/WHATS_NEW
|
||||||
|
+++ b/WHATS_NEW
|
||||||
|
@@ -1,3 +1,8 @@
|
||||||
|
+Version 2.03.26 -
|
||||||
|
+==================
|
||||||
|
+ Fix unreleased memory pools on RAID's lvextend.
|
||||||
|
+
|
||||||
|
+
|
||||||
|
Version 2.03.25 -
|
||||||
|
==================
|
||||||
|
Revert Don't import DM_UDEV_DISABLE_OTHER_RULES_FLAG in LVM rules, DM rules cover it.
|
||||||
|
diff --git a/lib/metadata/lv_manip.c b/lib/metadata/lv_manip.c
|
||||||
|
index bec363ef8..871d3bec9 100644
|
||||||
|
--- a/lib/metadata/lv_manip.c
|
||||||
|
+++ b/lib/metadata/lv_manip.c
|
||||||
|
@@ -4415,6 +4415,7 @@ static int _lv_extend_layered_lv(struct alloc_handle *ah,
|
||||||
|
log_error("Failed to remove LV");
|
||||||
|
else if (!vg_write(vg) || !vg_commit(vg))
|
||||||
|
log_error("Failed to commit VG %s", vg->name);
|
||||||
|
+ dm_pool_free(vg->vgmem, lvl);
|
||||||
|
return_0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -4571,7 +4572,7 @@ int lv_extend(struct logical_volume *lv,
|
||||||
|
alloc != ALLOC_ANYWHERE &&
|
||||||
|
!(r = _lv_raid_redundant_allocation(lv, allocatable_pvs))) {
|
||||||
|
log_error("Insufficient suitable allocatable extents for logical volume %s", display_lvname(lv));
|
||||||
|
- if (!lv_remove(lv) || !vg_write(lv->vg) || !vg_commit(lv->vg))
|
||||||
|
+ if (!old_extents && (!lv_remove(lv) || !vg_write(lv->vg) || !vg_commit(lv->vg)))
|
||||||
|
return_0;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.45.2
|
||||||
|
|
@ -54,7 +54,7 @@ Version: 2.03.24
|
|||||||
%if 0%{?from_snapshot}
|
%if 0%{?from_snapshot}
|
||||||
Release: 0.1.20211115git%{shortcommit}%{?dist}%{?rel_suffix}
|
Release: 0.1.20211115git%{shortcommit}%{?dist}%{?rel_suffix}
|
||||||
%else
|
%else
|
||||||
Release: 1%{?dist}%{?rel_suffix}
|
Release: 2%{?dist}%{?rel_suffix}
|
||||||
%endif
|
%endif
|
||||||
License: GPLv2
|
License: GPLv2
|
||||||
URL: https://sourceware.org/lvm2
|
URL: https://sourceware.org/lvm2
|
||||||
@ -76,6 +76,7 @@ Patch10: 0010-vgimportdevices-skip-global-lockd-locking.patch
|
|||||||
Patch11: 0011-scripts-Install-services-for-devices-file-init.patch
|
Patch11: 0011-scripts-Install-services-for-devices-file-init.patch
|
||||||
Patch12: 0012-lvmlockd-avoid-lockd_vg-for-local-VGs.patch
|
Patch12: 0012-lvmlockd-avoid-lockd_vg-for-local-VGs.patch
|
||||||
Patch13: 0013-lvmlockd-allow-forced-vgchange-locktype-from-none.patch
|
Patch13: 0013-lvmlockd-allow-forced-vgchange-locktype-from-none.patch
|
||||||
|
Patch14: 0014-lv_manip-avoid-unreleased-memory-pool-s-message-on-R.patch
|
||||||
|
|
||||||
BuildRequires: make
|
BuildRequires: make
|
||||||
BuildRequires: gcc
|
BuildRequires: gcc
|
||||||
@ -706,6 +707,9 @@ An extensive functional testsuite for LVM2.
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Aug 07 2024 Marian Csontos <mcsontos@redhat.com> - 2.03.24-2
|
||||||
|
- Fix unreleased memory pools on RAID's lvextend.
|
||||||
|
|
||||||
* Wed Jul 10 2024 Marian Csontos <mcsontos@redhat.com> - 2.03.24-1
|
* Wed Jul 10 2024 Marian Csontos <mcsontos@redhat.com> - 2.03.24-1
|
||||||
- Update to upstream version 2.03.24.
|
- Update to upstream version 2.03.24.
|
||||||
- See WHATS_NEW and WHATS_NEW_DM for more information.
|
- See WHATS_NEW and WHATS_NEW_DM for more information.
|
||||||
|
Loading…
Reference in New Issue
Block a user