New upstream release v2.03.20
This commit is contained in:
parent
f3c0c63900
commit
102c0f74e7
@ -1,144 +0,0 @@
|
|||||||
From 772605c8b4c84b970d5b2a73672686e0f90ce59f Mon Sep 17 00:00:00 2001
|
|
||||||
From: David Teigland <teigland@redhat.com>
|
|
||||||
Date: Thu, 23 Feb 2023 16:32:37 -0600
|
|
||||||
Subject: [PATCH] lvresize: fix check for mounted and renamed LV to handle
|
|
||||||
spaces
|
|
||||||
|
|
||||||
Replace spaces with \040 in directory paths from getmntent (mtab).
|
|
||||||
|
|
||||||
The recent commit 5374a44c5712 compares mount point directory paths
|
|
||||||
from /etc/mtab and /proc/mounts, in order to detect when a mounted
|
|
||||||
LV has been renamed. The directory path comparison does not work
|
|
||||||
correctly when the path contains spaces because getmntent uses
|
|
||||||
ascii space chars and proc replaces spaces with \040.
|
|
||||||
|
|
||||||
(cherry picked from commit 1857eb9fe08924c2e4e5adfc322ee4a2ae5a2e67)
|
|
||||||
---
|
|
||||||
lib/device/filesystem.c | 41 ++++++++++++++++++++++++++++++---------
|
|
||||||
test/shell/lvresize-fs.sh | 14 +++++++++++++
|
|
||||||
2 files changed, 46 insertions(+), 9 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/lib/device/filesystem.c b/lib/device/filesystem.c
|
|
||||||
index 9b086d8c1..2163276ed 100644
|
|
||||||
--- a/lib/device/filesystem.c
|
|
||||||
+++ b/lib/device/filesystem.c
|
|
||||||
@@ -234,8 +234,9 @@ int fs_mount_state_is_misnamed(struct cmd_context *cmd, struct logical_volume *l
|
|
||||||
char proc_fstype[FSTYPE_MAX];
|
|
||||||
char proc_devpath[PATH_MAX];
|
|
||||||
char proc_mntpath[PATH_MAX];
|
|
||||||
- char lv_mapper_path[PATH_MAX];
|
|
||||||
- char mntent_mount_dir[PATH_MAX];
|
|
||||||
+ char mtab_mntpath[PATH_MAX];
|
|
||||||
+ char dm_devpath[PATH_MAX];
|
|
||||||
+ char tmp_path[PATH_MAX];
|
|
||||||
char *dm_name;
|
|
||||||
struct stat st_lv;
|
|
||||||
struct stat stme;
|
|
||||||
@@ -275,14 +276,36 @@ int fs_mount_state_is_misnamed(struct cmd_context *cmd, struct logical_volume *l
|
|
||||||
continue;
|
|
||||||
if (stme.st_dev != st_lv.st_rdev)
|
|
||||||
continue;
|
|
||||||
- dm_strncpy(mntent_mount_dir, me->mnt_dir, sizeof(mntent_mount_dir));
|
|
||||||
+ dm_strncpy(mtab_mntpath, me->mnt_dir, sizeof(mtab_mntpath));
|
|
||||||
+ break;
|
|
||||||
}
|
|
||||||
endmntent(fme);
|
|
||||||
|
|
||||||
+ /*
|
|
||||||
+ * In mtab dir path, replace each ascii space character with the
|
|
||||||
+ * four characters \040 which is how /proc/mounts represents spaces.
|
|
||||||
+ * The mnt dir from /etc/mtab and /proc/mounts are compared below.
|
|
||||||
+ */
|
|
||||||
+ if (strchr(mtab_mntpath, ' ')) {
|
|
||||||
+ int i, j = 0;
|
|
||||||
+ memcpy(tmp_path, mtab_mntpath, sizeof(tmp_path));
|
|
||||||
+ memset(mtab_mntpath, 0, sizeof(mtab_mntpath));
|
|
||||||
+ for (i = 0; i < sizeof(tmp_path); i++) {
|
|
||||||
+ if (tmp_path[i] == ' ') {
|
|
||||||
+ mtab_mntpath[j++] = '\\';
|
|
||||||
+ mtab_mntpath[j++] = '0';
|
|
||||||
+ mtab_mntpath[j++] = '4';
|
|
||||||
+ mtab_mntpath[j++] = '0';
|
|
||||||
+ continue;
|
|
||||||
+ }
|
|
||||||
+ mtab_mntpath[j++] = tmp_path[i];
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
if (!(dm_name = dm_build_dm_name(cmd->mem, lv->vg->name, lv->name, NULL)))
|
|
||||||
return_0;
|
|
||||||
|
|
||||||
- if ((dm_snprintf(lv_mapper_path, sizeof(lv_mapper_path), "%s/%s", dm_dir(), dm_name) < 0))
|
|
||||||
+ if ((dm_snprintf(dm_devpath, sizeof(dm_devpath), "%s/%s", dm_dir(), dm_name) < 0))
|
|
||||||
return_0;
|
|
||||||
|
|
||||||
if (!(fp = fopen("/proc/mounts", "r")))
|
|
||||||
@@ -296,8 +319,8 @@ int fs_mount_state_is_misnamed(struct cmd_context *cmd, struct logical_volume *l
|
|
||||||
if (strcmp(fstype, proc_fstype))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
- dir_match = !strcmp(mntent_mount_dir, proc_mntpath);
|
|
||||||
- dev_match = !strcmp(lv_mapper_path, proc_devpath);
|
|
||||||
+ dir_match = !strcmp(mtab_mntpath, proc_mntpath);
|
|
||||||
+ dev_match = !strcmp(dm_devpath, proc_devpath);
|
|
||||||
|
|
||||||
if (dir_match)
|
|
||||||
found_dir++;
|
|
||||||
@@ -306,7 +329,7 @@ int fs_mount_state_is_misnamed(struct cmd_context *cmd, struct logical_volume *l
|
|
||||||
|
|
||||||
if (dir_match != dev_match) {
|
|
||||||
log_error("LV %s mounted at %s may have been renamed (from %s).",
|
|
||||||
- lv_mapper_path, proc_mntpath, proc_devpath);
|
|
||||||
+ dm_devpath, proc_mntpath, proc_devpath);
|
|
||||||
renamed = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -327,11 +350,11 @@ int fs_mount_state_is_misnamed(struct cmd_context *cmd, struct logical_volume *l
|
|
||||||
}
|
|
||||||
/* These two are likely detected as renamed, but include checks in case. */
|
|
||||||
if (found_dir > 1) {
|
|
||||||
- log_error("File system resizing not supported: %s appears more than once in /proc/mounts.", mntent_mount_dir);
|
|
||||||
+ log_error("File system resizing not supported: %s appears more than once in /proc/mounts.", mtab_mntpath);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
if (found_dev > 1) {
|
|
||||||
- log_error("File system resizing not supported: %s appears more than once in /proc/mounts.", lv_mapper_path);
|
|
||||||
+ log_error("File system resizing not supported: %s appears more than once in /proc/mounts.", dm_devpath);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
diff --git a/test/shell/lvresize-fs.sh b/test/shell/lvresize-fs.sh
|
|
||||||
index f437652d6..de234aad5 100644
|
|
||||||
--- a/test/shell/lvresize-fs.sh
|
|
||||||
+++ b/test/shell/lvresize-fs.sh
|
|
||||||
@@ -30,6 +30,9 @@ which mkfs.xfs || skip
|
|
||||||
mount_dir="mnt_lvresize_fs"
|
|
||||||
mkdir -p "$mount_dir"
|
|
||||||
|
|
||||||
+mount_dir_space="other mnt dir"
|
|
||||||
+mkdir -p "$mount_dir_space"
|
|
||||||
+
|
|
||||||
# Tests require a libblkid version that shows FSLASTBLOCK
|
|
||||||
lvcreate -n $lv1 -L 300 $vg
|
|
||||||
mkfs.xfs -f "$DM_DEV_DIR/$vg/$lv1"
|
|
||||||
@@ -273,6 +276,17 @@ umount "$mount_dir"
|
|
||||||
lvchange -an $vg/$lv2
|
|
||||||
lvremove $vg/$lv2
|
|
||||||
|
|
||||||
+# lvextend|lvreduce, ext4, active, mounted, mount dir with space, --fs resize, renamed LV
|
|
||||||
+lvcreate -n $lv -L 256M $vg
|
|
||||||
+mkfs.ext4 "$DM_DEV_DIR/$vg/$lv"
|
|
||||||
+mount "$DM_DEV_DIR/$vg/$lv" "$mount_dir_space"
|
|
||||||
+lvrename $vg/$lv $vg/$lv2
|
|
||||||
+not lvextend --fs resize -L+32M $vg/$lv2
|
|
||||||
+not lvreduce --fs resize -L-32M $vg/$lv2
|
|
||||||
+umount "$mount_dir_space"
|
|
||||||
+lvchange -an $vg/$lv2
|
|
||||||
+lvremove $vg/$lv2
|
|
||||||
+
|
|
||||||
|
|
||||||
#
|
|
||||||
# lvextend, xfs
|
|
||||||
--
|
|
||||||
2.39.2
|
|
||||||
|
|
@ -1,70 +0,0 @@
|
|||||||
From 268e4ee30305a73e262a7fa35f850df2728cc696 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Peter Rajnoha <prajnoha@redhat.com>
|
|
||||||
Date: Tue, 7 Mar 2023 14:45:06 +0100
|
|
||||||
Subject: [PATCH 2/2] toollib: fix segfault if using -S|--select with
|
|
||||||
log/report_command_log=1 setting
|
|
||||||
|
|
||||||
When we are using -S|--select for non-reporting tools while using command log
|
|
||||||
reporting (log/report_command_log=1 setting), we need to create an internal
|
|
||||||
processing handle to handle the selection itself. In this case, the internal
|
|
||||||
processing handle to execute the selection (to process the -S|--select) has
|
|
||||||
a parent handle (that is processing the actual non-reporting command).
|
|
||||||
|
|
||||||
When this parent handle exists, we can't destroy the command log report
|
|
||||||
in destroy_processing_handle as there's still the parent processing to
|
|
||||||
finish. The parent processing may still generate logs which need to be
|
|
||||||
reported in the command log report. If the command log report was
|
|
||||||
destroyed prematurely together with destroying the internal processing
|
|
||||||
handle for -S|--select, then any subsequent log request from processing
|
|
||||||
the actual command (and hence an attermpt to access the command log report)
|
|
||||||
ended up with a segfault.
|
|
||||||
|
|
||||||
See also: https://bugzilla.redhat.com/show_bug.cgi?id=2175220
|
|
||||||
|
|
||||||
(cherry picked from commit cd14d3fcc0e03136d0cea1ab1a9edff3b8b9dbeb)
|
|
||||||
---
|
|
||||||
WHATS_NEW | 4 ++++
|
|
||||||
tools/toollib.c | 15 ++++++++++++++-
|
|
||||||
2 files changed, 18 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/WHATS_NEW b/WHATS_NEW
|
|
||||||
index b54a092d8..33998be7d 100644
|
|
||||||
--- a/WHATS_NEW
|
|
||||||
+++ b/WHATS_NEW
|
|
||||||
@@ -1,3 +1,7 @@
|
|
||||||
+version 2.03.20 -
|
|
||||||
+====================================
|
|
||||||
+ Fix segfault if using -S|--select with log/report_command_log=1 setting.
|
|
||||||
+
|
|
||||||
version 2.03.19 - 21st February 2023
|
|
||||||
====================================
|
|
||||||
Configure supports --with-systemd-run executed from udev rules.
|
|
||||||
diff --git a/tools/toollib.c b/tools/toollib.c
|
|
||||||
index 194088ea6..43e628abf 100644
|
|
||||||
--- a/tools/toollib.c
|
|
||||||
+++ b/tools/toollib.c
|
|
||||||
@@ -2050,7 +2050,20 @@ void destroy_processing_handle(struct cmd_context *cmd, struct processing_handle
|
|
||||||
|
|
||||||
log_restore_report_state(cmd->cmd_report.saved_log_report_state);
|
|
||||||
|
|
||||||
- if (!cmd->is_interactive) {
|
|
||||||
+ /*
|
|
||||||
+ * Do not destroy current cmd->report_group and cmd->log_rh
|
|
||||||
+ * (the log report) yet if we're running interactively
|
|
||||||
+ * (== running in lvm shell) or if there's a parent handle
|
|
||||||
+ * (== we're executing nested processing, like it is when
|
|
||||||
+ * doing selection for parent's process_each_* processing).
|
|
||||||
+ *
|
|
||||||
+ * In both cases, there's still possible further processing
|
|
||||||
+ * to do outside the processing covered by the handle we are
|
|
||||||
+ * destroying here and for which we may still need to access
|
|
||||||
+ * the log report to cover the rest of the processing.
|
|
||||||
+ *
|
|
||||||
+ */
|
|
||||||
+ if (!cmd->is_interactive && !handle->parent) {
|
|
||||||
if (!dm_report_group_destroy(cmd->cmd_report.report_group))
|
|
||||||
stack;
|
|
||||||
cmd->cmd_report.report_group = NULL;
|
|
||||||
--
|
|
||||||
2.39.2
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
|||||||
-----BEGIN PGP SIGNATURE-----
|
|
||||||
|
|
||||||
iQIzBAABCAAdFiEE1QGkeEQK4v0TChvouREkMeUJA58FAmP0104ACgkQuREkMeUJ
|
|
||||||
A5/j4BAAtu8wevL/A5F1OPciiN/pIx+WYHV6p0iUqf+WR1uAQVLC+N4RcVi4kGwu
|
|
||||||
bS7BmGfoympIHsWo5J2Z8o1G7w9uhUsCOw4WS4xpwZ/vsCfh595sMhOUH/5N1076
|
|
||||||
+lm1a9ZiP/xZKFQj/I9LszRRMyHMgrQT9oLSKLFrcsPSST4e/kdoya6572n5xOrF
|
|
||||||
5st3ojxVXyH4/pF1BpvMnGTE4SM1s01wPB/A4/GlE8uIfPHzoJT3m/2gKplexWi0
|
|
||||||
gPF1KozoyjX9omxAJA/cmpgFRhIyN4+P0/AI7LlJAySTfFJLEh19ZVBrGr+/VWbP
|
|
||||||
pHAxUqnohLyZWoF/Z98wbV/zGqnhbbfemUj6m7irdOOb49KE2Q+Zi2yU8oICymFw
|
|
||||||
XBuJPZBtrzfdOW5i7tVwygi85mF4uA2c3wPGuhTI6we2yGKpY87rw0UM/dO46s2R
|
|
||||||
Mpb4/bD3s4Hdi58VONRC0zoXz+4ycX84YPwgC9XRpo9DnKqXRXcNnmRKqUq63vbU
|
|
||||||
XIE1DgabMEQc1vhiDkM8mMpgDWAeGy1NMV/e+9zTzK7X0996oFIyLlL+Ts7SC4+d
|
|
||||||
a472VN/Eg1wNUx/LSeGzdAZZlRHJLEOTD7HJ59M6m4YBca8x/fy27v+P6lT/+L82
|
|
||||||
C/WYyWFxlOTrZbpfPW/yedqiEHZaYGftGT5VQkJyOpMc2tjxreM=
|
|
||||||
=S86e
|
|
||||||
-----END PGP SIGNATURE-----
|
|
16
LVM2.2.03.20.tgz.asc
Normal file
16
LVM2.2.03.20.tgz.asc
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
|
||||||
|
iQIzBAABCAAdFiEE1QGkeEQK4v0TChvouREkMeUJA58FAmQZpUwACgkQuREkMeUJ
|
||||||
|
A59piw//TRzaglBpTiwuTDzmmLtIKOvMEx3xEu9aYtxV6QQVYnI7IaA52TMI+9LJ
|
||||||
|
nNA5sfsF3XJtJ6/8ycRqS9+8KC3tRBSlWfFUpGP68RGA8Y45mBFyQKDvDk7fBK0R
|
||||||
|
lruZOcLyfh1q6sjKm2B12UFcfYRNjsoupkJSf447sGJO4CsZQPUUyJsXolpFQ1Gz
|
||||||
|
KhCTDlhyJ4vQA4U7BgrNRuqqrfqFq8ydlmdS3BfEkJgU9n8bNjB8UsWrVlJNac99
|
||||||
|
ugUNY4Becs4khwcI5NTIDveVD6BO0WLz6gneMbh2IABSe+Qulk2mJHboNtl3t6p5
|
||||||
|
TFRS9awfWeQyKi3yHm0jvpSreUhUD7Ix/jRzYr3+auIIrj1BAk7ZivmFhzmmsHxm
|
||||||
|
P2wbTtMI1tI8a29UIRxlsMrxUUNhj2D/cdFPLT8cady0iqaJyYTEHtE87uHjjMTv
|
||||||
|
WWUnFMK87xmBVMoY6NUVDt80FJW2VCO2oWHDPisizO+dZBr4mFghwv2v0nmNn1F7
|
||||||
|
oEnrfHEDtUxnzv8owRGC70wRE5Pr+W0KqDHMa4gfwZLuWN0XxT4a/y94m4j2tv12
|
||||||
|
VGyoxCnT7O2Yb3CkgAAj/PavUpQknGLCzAJhVmqA2jv/yk2m+wqMUP0ue+sIrw0E
|
||||||
|
X4ajZadguDKBZHLjrj5zNe/9iFdwMGluaR7MWUVTJ++M3ltK6Ys=
|
||||||
|
=6cDj
|
||||||
|
-----END PGP SIGNATURE-----
|
15
lvm2.spec
15
lvm2.spec
@ -1,4 +1,4 @@
|
|||||||
%global device_mapper_version 1.02.191
|
%global device_mapper_version 1.02.193
|
||||||
|
|
||||||
%global enable_cache 1
|
%global enable_cache 1
|
||||||
%global enable_lvmdbusd 1
|
%global enable_lvmdbusd 1
|
||||||
@ -44,13 +44,12 @@ Name: lvm2
|
|||||||
%if 0%{?rhel}
|
%if 0%{?rhel}
|
||||||
Epoch: %{rhel}
|
Epoch: %{rhel}
|
||||||
%endif
|
%endif
|
||||||
Version: 2.03.19
|
Version: 2.03.20
|
||||||
Release: 2%{?dist}
|
Release: 1%{?dist}
|
||||||
License: GPLv2
|
License: GPLv2
|
||||||
URL: https://sourceware.org/lvm2/
|
URL: https://sourceware.org/lvm2/
|
||||||
Source0: https://sourceware.org/pub/lvm2/releases/LVM2.%{version}.tgz
|
Source0: https://sourceware.org/pub/lvm2/releases/LVM2.%{version}.tgz
|
||||||
Patch1: 0001-lvresize-fix-check-for-mounted-and-renamed-LV-to-han.patch
|
#Patch1: 0001-*
|
||||||
Patch2: 0002-toollib-fix-segfault-if-using-S-select-with-log-repo.patch
|
|
||||||
|
|
||||||
BuildRequires: make
|
BuildRequires: make
|
||||||
BuildRequires: gcc
|
BuildRequires: gcc
|
||||||
@ -104,8 +103,7 @@ or more physical volumes and creating one or more logical volumes
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q -n LVM2.%{version}
|
%setup -q -n LVM2.%{version}
|
||||||
%patch1 -p1 -b .backup1
|
#%%patch1 -p1 -b .backup1
|
||||||
%patch2 -p1 -b .backup2
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%global _default_pid_dir /run
|
%global _default_pid_dir /run
|
||||||
@ -658,6 +656,9 @@ An extensive functional testsuite for LVM2.
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Mar 21 2023 Marian Csontos <mcsontos@redhat.com> - 2.03.20-1
|
||||||
|
- Update to upstream version 2.03.20.
|
||||||
|
|
||||||
* Wed Mar 08 2023 Marian Csontos <mcsontos@redhat.com> - 2.03.19-2
|
* Wed Mar 08 2023 Marian Csontos <mcsontos@redhat.com> - 2.03.19-2
|
||||||
- Fix lvresize's check for mounted and renamed LVs to handle spaces.
|
- Fix lvresize's check for mounted and renamed LVs to handle spaces.
|
||||||
- Fix segfault when using -S|--select with log/report_command_log=1.
|
- Fix segfault when using -S|--select with log/report_command_log=1.
|
||||||
|
2
sources
2
sources
@ -1 +1 @@
|
|||||||
SHA512 (LVM2.2.03.19.tgz) = a40691f6f4c9300c95784be0fcb055a2b8e07bfdc87f000f2357ccb54fdb814a679fb79f5c9790a7440ef538e9997e46d56e539814bfdf138b4e76603aeb2994
|
SHA512 (LVM2.2.03.20.tgz) = 202ff19f6ab1e1ecdf448beec6c7db1a80885efda1a6eeabf44cd2cea40577405c388eabd86f59f34c6e9e400188050bc6d1a5d5daf02f2beda87eee73cd1a2d
|
||||||
|
Loading…
Reference in New Issue
Block a user