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_lvmdbusd 1
|
||||
@ -44,13 +44,12 @@ Name: lvm2
|
||||
%if 0%{?rhel}
|
||||
Epoch: %{rhel}
|
||||
%endif
|
||||
Version: 2.03.19
|
||||
Release: 2%{?dist}
|
||||
Version: 2.03.20
|
||||
Release: 1%{?dist}
|
||||
License: GPLv2
|
||||
URL: https://sourceware.org/lvm2/
|
||||
Source0: https://sourceware.org/pub/lvm2/releases/LVM2.%{version}.tgz
|
||||
Patch1: 0001-lvresize-fix-check-for-mounted-and-renamed-LV-to-han.patch
|
||||
Patch2: 0002-toollib-fix-segfault-if-using-S-select-with-log-repo.patch
|
||||
#Patch1: 0001-*
|
||||
|
||||
BuildRequires: make
|
||||
BuildRequires: gcc
|
||||
@ -104,8 +103,7 @@ or more physical volumes and creating one or more logical volumes
|
||||
|
||||
%prep
|
||||
%setup -q -n LVM2.%{version}
|
||||
%patch1 -p1 -b .backup1
|
||||
%patch2 -p1 -b .backup2
|
||||
#%%patch1 -p1 -b .backup1
|
||||
|
||||
%build
|
||||
%global _default_pid_dir /run
|
||||
@ -658,6 +656,9 @@ An extensive functional testsuite for LVM2.
|
||||
%endif
|
||||
|
||||
%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
|
||||
- Fix lvresize's check for mounted and renamed LVs to handle spaces.
|
||||
- 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