From 48308d41ec585ce61ee2d9fc69de86aeb195ef6b Mon Sep 17 00:00:00 2001 From: Marian Csontos Date: Wed, 31 Jan 2024 20:41:59 +0100 Subject: [PATCH] Additional patches for 9.4.0 lvm2 Resolves: RHEL-14216 RHEL-20192 RHEL-8270 --- ...-Install-and-package-etc-lvm-devices.patch | 38 ++++++++++++ 0002-man-add-inte-g-rity-to-man-lvs.patch | 26 +++++++++ ...Fix-doubled-filename-in-vgcfgrestore.patch | 25 ++++++++ ...s-to-lvs-command-output-in-case-Raid.patch | 58 +++++++++++++++++++ lvm2.spec | 18 +++++- 5 files changed, 162 insertions(+), 3 deletions(-) create mode 100644 0001-spec-Install-and-package-etc-lvm-devices.patch create mode 100644 0002-man-add-inte-g-rity-to-man-lvs.patch create mode 100644 0003-archiving-Fix-doubled-filename-in-vgcfgrestore.patch create mode 100644 0004-raid-add-messages-to-lvs-command-output-in-case-Raid.patch diff --git a/0001-spec-Install-and-package-etc-lvm-devices.patch b/0001-spec-Install-and-package-etc-lvm-devices.patch new file mode 100644 index 0000000..1b0c5aa --- /dev/null +++ b/0001-spec-Install-and-package-etc-lvm-devices.patch @@ -0,0 +1,38 @@ +From 40b5a4dfa9a19997b931f88ff69a9bb9bb68ac3d Mon Sep 17 00:00:00 2001 +From: Marian Csontos +Date: Wed, 29 Nov 2023 15:09:36 +0100 +Subject: [PATCH 1/4] spec: Install and package /etc/lvm/devices + +(cherry picked from commit ee31ba5023e6e1430c0d808f54015ccd3eb3931a) +--- + Makefile.in | 1 + + spec/packages.inc | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/Makefile.in b/Makefile.in +index 41f249fdc..d30f6e7fd 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -127,6 +127,7 @@ all_man: + + install_system_dirs: + $(INSTALL_DIR) $(DESTDIR)$(DEFAULT_SYS_DIR) ++ $(INSTALL_ROOT_DIR) $(DESTDIR)$(DEFAULT_SYS_DIR)/devices + $(INSTALL_ROOT_DIR) $(DESTDIR)$(DEFAULT_ARCHIVE_DIR) + $(INSTALL_ROOT_DIR) $(DESTDIR)$(DEFAULT_BACKUP_DIR) + $(INSTALL_ROOT_DIR) $(DESTDIR)$(DEFAULT_CACHE_DIR) +diff --git a/spec/packages.inc b/spec/packages.inc +index cc1655ece..05733e0df 100644 +--- a/spec/packages.inc ++++ b/spec/packages.inc +@@ -182,6 +182,7 @@ fi + %dir %{_sysconfdir}/lvm/backup + %dir %{_sysconfdir}/lvm/cache + %dir %{_sysconfdir}/lvm/archive ++%dir %{_sysconfdir}/lvm/devices + %dir %{_default_locking_dir} + %dir %{_default_run_dir} + %if %{enable_systemd} +-- +2.43.0 + diff --git a/0002-man-add-inte-g-rity-to-man-lvs.patch b/0002-man-add-inte-g-rity-to-man-lvs.patch new file mode 100644 index 0000000..1566223 --- /dev/null +++ b/0002-man-add-inte-g-rity-to-man-lvs.patch @@ -0,0 +1,26 @@ +From 2808b67d52123ec709e5a6d6c6780c8d325e708a Mon Sep 17 00:00:00 2001 +From: Lukas Herbolt +Date: Tue, 5 Dec 2023 09:08:24 -0600 +Subject: [PATCH 2/4] man: add inte(g)rity to man lvs + +(cherry picked from commit 7b64d9946d6a3be84338ad976383b6ab53e97484) +--- + man/lvs.8_end | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/man/lvs.8_end b/man/lvs.8_end +index dc3a27446..e9897b4fc 100644 +--- a/man/lvs.8_end ++++ b/man/lvs.8_end +@@ -4,7 +4,7 @@ + The lv_attr bits are: + .IP 1 3 + Volume type: (\fBC\fP)ache, (\fBm\fP)irrored, (\fBM\fP)irrored without initial sync, (\fBo\fP)rigin, +-(\fBO\fP)rigin with merging snapshot, (\fBr\fP)aid, (\fBR\fP)aid without initial sync, ++(\fBO\fP)rigin with merging snapshot, inte(\fBg\fP)rity, (\fBr\fP)aid, (\fBR\fP)aid without initial sync, + (\fBs\fP)napshot, merging (\fBS\fP)napshot, (\fBp\fP)vmove, (\fBv\fP)irtual, + mirror or raid (\fBi\fP)mage, mirror or raid (\fBI\fP)mage out-of-sync, mirror (\fBl\fP)og device, + under (\fBc\fP)onversion, thin (\fBV\fP)olume, (\fBt\fP)hin pool, (\fBT\fP)hin pool data, +-- +2.43.0 + diff --git a/0003-archiving-Fix-doubled-filename-in-vgcfgrestore.patch b/0003-archiving-Fix-doubled-filename-in-vgcfgrestore.patch new file mode 100644 index 0000000..fdc19f9 --- /dev/null +++ b/0003-archiving-Fix-doubled-filename-in-vgcfgrestore.patch @@ -0,0 +1,25 @@ +From fdfd76a3ff1e2863fa11e79217bd2a4fa7ff527e Mon Sep 17 00:00:00 2001 +From: Ranjith ML +Date: Wed, 24 Jan 2024 14:05:24 +0100 +Subject: [PATCH 3/4] archiving: Fix doubled filename in vgcfgrestore + +--- + lib/format_text/archive.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/format_text/archive.c b/lib/format_text/archive.c +index 5acf0c04a..0e848cc8f 100644 +--- a/lib/format_text/archive.c ++++ b/lib/format_text/archive.c +@@ -313,7 +313,7 @@ static void _display_archive(struct cmd_context *cmd, const char *dir, struct ar + } + + log_print(" "); +- log_print("File:\t\t%s/%s", path, af->name); ++ log_print("File:\t\t%s", path); + tc.path_live = path; + + fic.type = FMT_INSTANCE_PRIVATE_MDAS; +-- +2.43.0 + diff --git a/0004-raid-add-messages-to-lvs-command-output-in-case-Raid.patch b/0004-raid-add-messages-to-lvs-command-output-in-case-Raid.patch new file mode 100644 index 0000000..ddfad72 --- /dev/null +++ b/0004-raid-add-messages-to-lvs-command-output-in-case-Raid.patch @@ -0,0 +1,58 @@ +From 2e2e122eef2fe7781341a9574487c063cbd27a69 Mon Sep 17 00:00:00 2001 +From: Heinz Mauelshagen +Date: Wed, 6 Dec 2023 12:58:14 +0100 +Subject: [PATCH 4/4] raid: add messages to lvs command output in case RaidLVs + require a refresh + +If a RaidLV mapping is required to be refreshed as a result of temporarily failed +and recurred RAID leg device (pairs) caused by writes to the LV during failure, +the requirement is reported by volume health character r' in position 9 of the +LV's attribute field (see 'man lvs' about additional volume health characters). + +As this character can be overlooked, this patch adds messages to the top +of the lvs command output informing the user explicitely about the fact. + +(cherry picked from commit b69f73b13ee55ef3feb7427c6dc099dc3472d9fc) +--- + tools/reporter.c | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +diff --git a/tools/reporter.c b/tools/reporter.c +index 61af33af5..a28780298 100644 +--- a/tools/reporter.c ++++ b/tools/reporter.c +@@ -150,6 +150,13 @@ static int _check_merging_origin(const struct logical_volume *lv, + return 1; + } + ++static void _cond_warn_raid_volume_health(struct cmd_context *cmd, const struct logical_volume *lv) ++{ ++ if (lv_is_raid(lv) && !lv_raid_healthy(lv) && !lv_is_partial(lv)) ++ log_warn("WARNING: RaidLV %s needs to be refreshed! See character 'r' at position 9 in the RaidLV's attributes%s.", display_lvname(lv), ++ arg_is_set(cmd, all_ARG) ? " and its SubLV(s)" : " and also its SubLV(s) with option '-a'"); ++} ++ + static int _do_lvs_with_info_and_status_single(struct cmd_context *cmd, + const struct logical_volume *lv, + int do_info, int do_status, +@@ -176,6 +183,8 @@ static int _do_lvs_with_info_and_status_single(struct cmd_context *cmd, + lv = lv->snapshot->lv; + } + ++ _cond_warn_raid_volume_health(cmd, lv); ++ + if (!report_object(sh ? : handle->custom_handle, sh != NULL, + lv->vg, lv, NULL, NULL, NULL, &status, NULL)) + goto out; +@@ -238,6 +247,8 @@ static int _do_segs_with_info_and_status_single(struct cmd_context *cmd, + seg = seg->lv->snapshot; + } + ++ _cond_warn_raid_volume_health(cmd, seg->lv); ++ + if (!report_object(sh ? : handle->custom_handle, sh != NULL, + seg->lv->vg, seg->lv, NULL, seg, NULL, &status, NULL)) + goto_out; +-- +2.43.0 + diff --git a/lvm2.spec b/lvm2.spec index ebf7ac7..2aa13e0 100644 --- a/lvm2.spec +++ b/lvm2.spec @@ -54,15 +54,22 @@ Version: 2.03.23 %if 0%{?from_snapshot} Release: 0.1.20211115git%{shortcommit}%{?dist}%{?rel_suffix} %else -Release: 1%{?dist}%{?rel_suffix} +Release: 2%{?dist}%{?rel_suffix} %endif License: GPLv2 -URL: http://sourceware.org/lvm2 +URL: https://sourceware.org/lvm2 %if 0%{?from_snapshot} Source0: lvm2-%{shortcommit}.tgz %else -Source0: ftp://sourceware.org/pub/lvm2/releases/LVM2.%{version}.tgz +Source0: https://sourceware.org/pub/lvm2/releases/LVM2.%{version}.tgz %endif +Patch1: 0001-spec-Install-and-package-etc-lvm-devices.patch +# RHEL-14216: +Patch2: 0002-man-add-inte-g-rity-to-man-lvs.patch +# RHEL-20192: +Patch3: 0003-archiving-Fix-doubled-filename-in-vgcfgrestore.patch +# RHEL-8270: +Patch4: 0004-raid-add-messages-to-lvs-command-output-in-case-Raid.patch BuildRequires: make BuildRequires: gcc @@ -381,6 +388,7 @@ systemctl start lvm2-lvmpolld.socket >/dev/null 2>&1 || : %dir %{_sysconfdir}/lvm/backup %dir %{_sysconfdir}/lvm/cache %dir %{_sysconfdir}/lvm/archive +%dir %{_sysconfdir}/lvm/devices %dir %{_default_locking_dir} %dir %{_default_run_dir} %{_tmpfilesdir}/%{name}.conf @@ -690,6 +698,10 @@ An extensive functional testsuite for LVM2. %endif %changelog +* Fri Feb 02 2024 Marian Csontos - 2.03.23-2 +- Add warning message when mirror images have (r)efresh bit set. +- Document lv_attr volume type bit (g) for raid+integrity in lvs(8). + * Wed Nov 22 2023 Marian Csontos - 2.03.23-1 - Update to upstream version 2.03.23. - See WHATS_NEW and WHATS_NEW_DM for more information.