parent
d2b663602b
commit
5e0fa0f972
@ -0,0 +1,49 @@
|
|||||||
|
From 380e3855fbc661eed490665cf1e3d05e985da189 Mon Sep 17 00:00:00 2001
|
||||||
|
From: David Teigland <teigland@redhat.com>
|
||||||
|
Date: Tue, 3 Jan 2023 14:35:26 -0600
|
||||||
|
Subject: [PATCH 1/4] tests: lvresize-fs-crypt using helper only for crypt dev
|
||||||
|
|
||||||
|
(cherry picked from commit 2580f007f0aaa3bf22c43295caa2c60c6142494f)
|
||||||
|
---
|
||||||
|
test/shell/lvresize-fs-crypt.sh | 25 +++++++++++++++++++++++++
|
||||||
|
1 file changed, 25 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/test/shell/lvresize-fs-crypt.sh b/test/shell/lvresize-fs-crypt.sh
|
||||||
|
index e7b8b9426..61a6de022 100644
|
||||||
|
--- a/test/shell/lvresize-fs-crypt.sh
|
||||||
|
+++ b/test/shell/lvresize-fs-crypt.sh
|
||||||
|
@@ -135,6 +135,31 @@ cryptsetup close $cr
|
||||||
|
lvchange -an $vg/$lv
|
||||||
|
lvremove $vg/$lv
|
||||||
|
|
||||||
|
+# lvresize uses helper only for crypt dev resize
|
||||||
|
+# because the fs was resized separately beforehand
|
||||||
|
+lvcreate -n $lv -L 456M $vg
|
||||||
|
+echo 93R4P4pIqAH8 | cryptsetup luksFormat -i1 --type luks1 "$DM_DEV_DIR/$vg/$lv"
|
||||||
|
+echo 93R4P4pIqAH8 | cryptsetup luksOpen "$DM_DEV_DIR/$vg/$lv" $cr
|
||||||
|
+mkfs.ext4 /dev/mapper/$cr
|
||||||
|
+mount /dev/mapper/$cr "$mount_dir"
|
||||||
|
+dd if=/dev/zero of="$mount_dir/zeros1" bs=1M count=100 conv=fdatasync
|
||||||
|
+df --output=size "$mount_dir" |tee df1
|
||||||
|
+# resize only the fs (to 256M), not the crypt dev or LV
|
||||||
|
+umount "$mount_dir"
|
||||||
|
+resize2fs /dev/mapper/$cr 262144k
|
||||||
|
+mount /dev/mapper/$cr "$mount_dir"
|
||||||
|
+# this lvresize will not resize the fs (which is already reduced
|
||||||
|
+# to smaller than the requested LV size), but lvresize will use
|
||||||
|
+# the helper to resize the crypt dev before resizing the LV.
|
||||||
|
+lvresize -L-100M $vg/$lv
|
||||||
|
+check lv_field $vg/$lv lv_size "356.00m"
|
||||||
|
+df --output=size "$mount_dir" |tee df2
|
||||||
|
+not diff df1 df2
|
||||||
|
+umount "$mount_dir"
|
||||||
|
+cryptsetup close $cr
|
||||||
|
+lvchange -an $vg/$lv
|
||||||
|
+lvremove $vg/$lv
|
||||||
|
+
|
||||||
|
# test with LUKS2?
|
||||||
|
|
||||||
|
vgremove -ff $vg
|
||||||
|
--
|
||||||
|
2.39.1
|
||||||
|
|
114
0008-lvresize-only-resize-crypt-when-fs-resize-is-enabled.patch
Normal file
114
0008-lvresize-only-resize-crypt-when-fs-resize-is-enabled.patch
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
From 7e0c2e1581225a916269edc8f04fb10e4ef5e952 Mon Sep 17 00:00:00 2001
|
||||||
|
From: David Teigland <teigland@redhat.com>
|
||||||
|
Date: Thu, 19 Jan 2023 11:36:51 -0600
|
||||||
|
Subject: [PATCH 2/4] lvresize: only resize crypt when fs resize is enabled
|
||||||
|
|
||||||
|
There were a couple of cases where lvresize, without --fs resize,
|
||||||
|
was resizing the crypt layer above the LV. Resizing the crypt
|
||||||
|
layer should only be done when fs resizing is enabled (even if the
|
||||||
|
fs is already small enough due to being independently reduced.)
|
||||||
|
|
||||||
|
Also, check the size of the crypt device to see if it's already
|
||||||
|
been reduced independently, and skip the cryptsetup resize if
|
||||||
|
it's not needed.
|
||||||
|
|
||||||
|
(cherry picked from commit 3bb55765286dc8e4f0000957d85a6b8ee2752852)
|
||||||
|
---
|
||||||
|
lib/device/filesystem.c | 12 ++++++++++++
|
||||||
|
lib/device/filesystem.h | 1 +
|
||||||
|
lib/metadata/lv_manip.c | 18 +++++++++++++++++-
|
||||||
|
test/shell/lvresize-fs-crypt.sh | 7 ++++++-
|
||||||
|
4 files changed, 36 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/lib/device/filesystem.c b/lib/device/filesystem.c
|
||||||
|
index bdc230175..b4c43a626 100644
|
||||||
|
--- a/lib/device/filesystem.c
|
||||||
|
+++ b/lib/device/filesystem.c
|
||||||
|
@@ -106,6 +106,7 @@ int fs_get_info(struct cmd_context *cmd, struct logical_volume *lv,
|
||||||
|
struct fs_info info;
|
||||||
|
FILE *fme = NULL;
|
||||||
|
struct mntent *me;
|
||||||
|
+ int fd;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
if (dm_snprintf(lv_path, PATH_MAX, "%s%s/%s", lv->vg->cmd->dev_dir,
|
||||||
|
@@ -151,6 +152,17 @@ int fs_get_info(struct cmd_context *cmd, struct logical_volume *lv,
|
||||||
|
log_print("File system found on crypt device %s on LV %s.",
|
||||||
|
crypt_path, display_lvname(lv));
|
||||||
|
|
||||||
|
+ if ((fd = open(crypt_path, O_RDONLY)) < 0) {
|
||||||
|
+ log_error("Failed to open crypt path %s", crypt_path);
|
||||||
|
+ return 0;
|
||||||
|
+ }
|
||||||
|
+ if (ioctl(fd, BLKGETSIZE64, &info.crypt_dev_size_bytes) < 0) {
|
||||||
|
+ log_error("Failed to get crypt device size %s", crypt_path);
|
||||||
|
+ close(fd);
|
||||||
|
+ return 0;
|
||||||
|
+ }
|
||||||
|
+ close(fd);
|
||||||
|
+
|
||||||
|
if (!fs_get_blkid(crypt_path, &info)) {
|
||||||
|
log_error("No file system info from blkid for dm-crypt device %s on LV %s.",
|
||||||
|
crypt_path, display_lvname(lv));
|
||||||
|
diff --git a/lib/device/filesystem.h b/lib/device/filesystem.h
|
||||||
|
index 7a34d2ae0..fd1af0416 100644
|
||||||
|
--- a/lib/device/filesystem.h
|
||||||
|
+++ b/lib/device/filesystem.h
|
||||||
|
@@ -25,6 +25,7 @@ struct fs_info {
|
||||||
|
uint64_t fs_last_byte; /* last byte on the device used by the fs */
|
||||||
|
uint32_t crypt_offset_bytes; /* offset in bytes of crypt data on LV */
|
||||||
|
dev_t crypt_devt; /* dm-crypt device between the LV and FS */
|
||||||
|
+ uint64_t crypt_dev_size_bytes;
|
||||||
|
|
||||||
|
unsigned nofs:1;
|
||||||
|
unsigned unmounted:1;
|
||||||
|
diff --git a/lib/metadata/lv_manip.c b/lib/metadata/lv_manip.c
|
||||||
|
index f8eae0447..a2e9db2c9 100644
|
||||||
|
--- a/lib/metadata/lv_manip.c
|
||||||
|
+++ b/lib/metadata/lv_manip.c
|
||||||
|
@@ -6397,7 +6397,23 @@ static int _fs_reduce(struct cmd_context *cmd, struct logical_volume *lv,
|
||||||
|
* but the crypt dev over the LV should be shrunk to correspond with
|
||||||
|
* the LV size, so that the FS does not see an incorrect device size.
|
||||||
|
*/
|
||||||
|
- if (!fsinfo.needs_reduce && fsinfo.needs_crypt && !test_mode()) {
|
||||||
|
+ if (!fsinfo.needs_reduce && fsinfo.needs_crypt) {
|
||||||
|
+ /* Check if the crypt device is already sufficiently reduced. */
|
||||||
|
+ if (fsinfo.crypt_dev_size_bytes <= newsize_bytes_fs) {
|
||||||
|
+ log_print("crypt device is already reduced to %llu bytes.",
|
||||||
|
+ (unsigned long long)fsinfo.crypt_dev_size_bytes);
|
||||||
|
+ ret = 1;
|
||||||
|
+ goto out;
|
||||||
|
+ }
|
||||||
|
+ if (!strcmp(lp->fsopt, "checksize")) {
|
||||||
|
+ log_error("crypt reduce is required (see --resizefs or cryptsetup resize.)");
|
||||||
|
+ ret = 0;
|
||||||
|
+ goto out;
|
||||||
|
+ }
|
||||||
|
+ if (test_mode()) {
|
||||||
|
+ ret = 1;
|
||||||
|
+ goto_out;
|
||||||
|
+ }
|
||||||
|
ret = crypt_resize_script(cmd, lv, &fsinfo, newsize_bytes_fs);
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
diff --git a/test/shell/lvresize-fs-crypt.sh b/test/shell/lvresize-fs-crypt.sh
|
||||||
|
index 61a6de022..4bef771dc 100644
|
||||||
|
--- a/test/shell/lvresize-fs-crypt.sh
|
||||||
|
+++ b/test/shell/lvresize-fs-crypt.sh
|
||||||
|
@@ -151,7 +151,12 @@ mount /dev/mapper/$cr "$mount_dir"
|
||||||
|
# this lvresize will not resize the fs (which is already reduced
|
||||||
|
# to smaller than the requested LV size), but lvresize will use
|
||||||
|
# the helper to resize the crypt dev before resizing the LV.
|
||||||
|
-lvresize -L-100M $vg/$lv
|
||||||
|
+# Using --fs resize is required to allow lvresize to look above
|
||||||
|
+# the lv at crypt&fs layers for potential resizing. Without
|
||||||
|
+# --fs resize, lvresize fails because it sees that crypt resize
|
||||||
|
+# is needed and --fs resize is needed to enable that.
|
||||||
|
+not lvresize -L-100 $vg/$lv
|
||||||
|
+lvresize -L-100M --fs resize $vg/$lv
|
||||||
|
check lv_field $vg/$lv lv_size "356.00m"
|
||||||
|
df --output=size "$mount_dir" |tee df2
|
||||||
|
not diff df1 df2
|
||||||
|
--
|
||||||
|
2.39.1
|
||||||
|
|
188
0009-lvresize-fail-early-if-mounted-LV-was-renamed.patch
Normal file
188
0009-lvresize-fail-early-if-mounted-LV-was-renamed.patch
Normal file
@ -0,0 +1,188 @@
|
|||||||
|
From fba3614c3ed596b99d8adf2fe6c60886db10b2c0 Mon Sep 17 00:00:00 2001
|
||||||
|
From: David Teigland <teigland@redhat.com>
|
||||||
|
Date: Thu, 26 Jan 2023 14:00:00 -0600
|
||||||
|
Subject: [PATCH 3/4] lvresize: fail early if mounted LV was renamed
|
||||||
|
|
||||||
|
If a mounted LV is renamed, then fs resizing utilities will fail,
|
||||||
|
so detect this condition and fail the command before any changes
|
||||||
|
are made.
|
||||||
|
|
||||||
|
(cherry picked from commit 5374a44c57127cdd832a675545c1d2bbf0b3751a)
|
||||||
|
---
|
||||||
|
lib/device/filesystem.c | 110 ++++++++++++++++++++++++++++++++++++++
|
||||||
|
lib/device/filesystem.h | 2 +
|
||||||
|
lib/metadata/lv_manip.c | 3 ++
|
||||||
|
test/shell/lvresize-fs.sh | 11 ++++
|
||||||
|
4 files changed, 126 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/lib/device/filesystem.c b/lib/device/filesystem.c
|
||||||
|
index b4c43a626..db507bdda 100644
|
||||||
|
--- a/lib/device/filesystem.c
|
||||||
|
+++ b/lib/device/filesystem.c
|
||||||
|
@@ -214,6 +214,116 @@ int fs_get_info(struct cmd_context *cmd, struct logical_volume *lv,
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
+int fs_mount_state_is_misnamed(struct cmd_context *cmd, struct logical_volume *lv, char *lv_path, char *fstype)
|
||||||
|
+{
|
||||||
|
+ FILE *fp;
|
||||||
|
+ char proc_line[PATH_MAX];
|
||||||
|
+ char proc_fstype[FSTYPE_MAX];
|
||||||
|
+ char proc_devpath[1024];
|
||||||
|
+ char proc_mntpath[1024];
|
||||||
|
+ char lv_mapper_path[1024];
|
||||||
|
+ char mntent_mount_dir[1024];
|
||||||
|
+ char *dm_name;
|
||||||
|
+ struct stat st_lv;
|
||||||
|
+ struct stat stme;
|
||||||
|
+ FILE *fme = NULL;
|
||||||
|
+ struct mntent *me;
|
||||||
|
+ int renamed = 0;
|
||||||
|
+ int found_dir = 0;
|
||||||
|
+ int found_dev = 0;
|
||||||
|
+ int dev_match, dir_match;
|
||||||
|
+
|
||||||
|
+ if (stat(lv_path, &st_lv) < 0) {
|
||||||
|
+ log_error("Failed to get LV path %s", lv_path);
|
||||||
|
+ return 0;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ /*
|
||||||
|
+ * If LVs have been renamed while their file systems were mounted, then
|
||||||
|
+ * inconsistencies appear in the device path and mount point info
|
||||||
|
+ * provided by getmntent and /proc/mounts. If there's any
|
||||||
|
+ * inconsistency or duplication of info for the LV name or the mount
|
||||||
|
+ * point, then give up and don't try fs resize which is likely to fail
|
||||||
|
+ * due to kernel problems where mounts reference old device names
|
||||||
|
+ * causing fs resizing tools to fail.
|
||||||
|
+ */
|
||||||
|
+
|
||||||
|
+ if (!(fme = setmntent("/etc/mtab", "r")))
|
||||||
|
+ return_0;
|
||||||
|
+
|
||||||
|
+ while ((me = getmntent(fme))) {
|
||||||
|
+ if (strcmp(me->mnt_type, fstype))
|
||||||
|
+ continue;
|
||||||
|
+ if (me->mnt_dir[0] != '/')
|
||||||
|
+ continue;
|
||||||
|
+ if (me->mnt_fsname[0] != '/')
|
||||||
|
+ continue;
|
||||||
|
+ if (stat(me->mnt_dir, &stme) < 0)
|
||||||
|
+ continue;
|
||||||
|
+ if (stme.st_dev != st_lv.st_rdev)
|
||||||
|
+ continue;
|
||||||
|
+ strncpy(mntent_mount_dir, me->mnt_dir, PATH_MAX-1);
|
||||||
|
+ }
|
||||||
|
+ endmntent(fme);
|
||||||
|
+
|
||||||
|
+ if (!(dm_name = dm_build_dm_name(cmd->mem, lv->vg->name, lv->name, NULL)))
|
||||||
|
+ return_0;
|
||||||
|
+
|
||||||
|
+ if ((dm_snprintf(lv_mapper_path, 1024, "%s/%s", dm_dir(), dm_name) < 0))
|
||||||
|
+ return_0;
|
||||||
|
+
|
||||||
|
+ if (!(fp = fopen("/proc/mounts", "r")))
|
||||||
|
+ return_0;
|
||||||
|
+
|
||||||
|
+ while (fgets(proc_line, sizeof(proc_line), fp)) {
|
||||||
|
+ if (proc_line[0] != '/')
|
||||||
|
+ continue;
|
||||||
|
+ if (sscanf(proc_line, "%s %s %s", proc_devpath, proc_mntpath, proc_fstype) != 3)
|
||||||
|
+ continue;
|
||||||
|
+ if (strcmp(fstype, proc_fstype))
|
||||||
|
+ continue;
|
||||||
|
+
|
||||||
|
+ dir_match = !strcmp(mntent_mount_dir, proc_mntpath);
|
||||||
|
+ dev_match = !strcmp(lv_mapper_path, proc_devpath);
|
||||||
|
+
|
||||||
|
+ if (dir_match)
|
||||||
|
+ found_dir++;
|
||||||
|
+ if (dev_match)
|
||||||
|
+ found_dev++;
|
||||||
|
+
|
||||||
|
+ 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);
|
||||||
|
+ renamed = 1;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (fclose(fp))
|
||||||
|
+ stack;
|
||||||
|
+
|
||||||
|
+ /*
|
||||||
|
+ * Don't try resizing if:
|
||||||
|
+ * - different device names apppear for the mount point
|
||||||
|
+ * (LVs probably renamed while mounted), or
|
||||||
|
+ * - the mount point for the LV appears multiple times, or
|
||||||
|
+ * - the LV device is listed for multiple mounts.
|
||||||
|
+ */
|
||||||
|
+ if (renamed) {
|
||||||
|
+ log_error("File system resizing not supported: fs utilities do not support renamed devices.");
|
||||||
|
+ return 1;
|
||||||
|
+ }
|
||||||
|
+ /* 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);
|
||||||
|
+ return 1;
|
||||||
|
+ }
|
||||||
|
+ if (found_dev > 1) {
|
||||||
|
+ log_error("File system resizing not supported: %s appears more than once in /proc/mounts.", lv_mapper_path);
|
||||||
|
+ return 1;
|
||||||
|
+ }
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
#define FS_CMD_MAX_ARGS 16
|
||||||
|
|
||||||
|
int crypt_resize_script(struct cmd_context *cmd, struct logical_volume *lv, struct fs_info *fsi,
|
||||||
|
diff --git a/lib/device/filesystem.h b/lib/device/filesystem.h
|
||||||
|
index fd1af0416..77eac34d0 100644
|
||||||
|
--- a/lib/device/filesystem.h
|
||||||
|
+++ b/lib/device/filesystem.h
|
||||||
|
@@ -48,4 +48,6 @@ int fs_reduce_script(struct cmd_context *cmd, struct logical_volume *lv, struct
|
||||||
|
uint64_t newsize_bytes, char *fsmode);
|
||||||
|
int crypt_resize_script(struct cmd_context *cmd, struct logical_volume *lv, struct fs_info *fsi,
|
||||||
|
uint64_t newsize_bytes_fs);
|
||||||
|
+
|
||||||
|
+int fs_mount_state_is_misnamed(struct cmd_context *cmd, struct logical_volume *lv, char *lv_path, char *fstype);
|
||||||
|
#endif
|
||||||
|
diff --git a/lib/metadata/lv_manip.c b/lib/metadata/lv_manip.c
|
||||||
|
index a2e9db2c9..25e16d41d 100644
|
||||||
|
--- a/lib/metadata/lv_manip.c
|
||||||
|
+++ b/lib/metadata/lv_manip.c
|
||||||
|
@@ -6928,6 +6928,9 @@ int lv_resize(struct cmd_context *cmd, struct logical_volume *lv,
|
||||||
|
log_error("File system not found for --resizefs or --fs options.");
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
+ /* FS utils will fail if LVs were renamed while mounted. */
|
||||||
|
+ if (fs_mount_state_is_misnamed(cmd, lv_top, lv_path, fstype))
|
||||||
|
+ goto_out;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
diff --git a/test/shell/lvresize-fs.sh b/test/shell/lvresize-fs.sh
|
||||||
|
index 0be6911a0..f437652d6 100644
|
||||||
|
--- a/test/shell/lvresize-fs.sh
|
||||||
|
+++ b/test/shell/lvresize-fs.sh
|
||||||
|
@@ -262,6 +262,17 @@ umount "$mount_dir"
|
||||||
|
lvchange -an $vg/$lv
|
||||||
|
lvremove $vg/$lv
|
||||||
|
|
||||||
|
+# lvextend|lvreduce, ext4, active, mounted, --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"
|
||||||
|
+lvrename $vg/$lv $vg/$lv2
|
||||||
|
+not lvextend --fs resize -L+32M $vg/$lv2
|
||||||
|
+not lvreduce --fs resize -L-32M $vg/$lv2
|
||||||
|
+umount "$mount_dir"
|
||||||
|
+lvchange -an $vg/$lv2
|
||||||
|
+lvremove $vg/$lv2
|
||||||
|
+
|
||||||
|
|
||||||
|
#
|
||||||
|
# lvextend, xfs
|
||||||
|
--
|
||||||
|
2.39.1
|
||||||
|
|
@ -0,0 +1,69 @@
|
|||||||
|
From 285c766877b54b24234f84c313bb5806c0dcfa21 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Yu Watanabe <watanabe.yu+github@gmail.com>
|
||||||
|
Date: Thu, 2 Feb 2023 00:28:12 +0900
|
||||||
|
Subject: [PATCH 4/4] udev: import previous results of blkid when in suspended
|
||||||
|
state
|
||||||
|
|
||||||
|
Follow-up for e10f67e91728f1e576803df884049ecbd92874d0.
|
||||||
|
|
||||||
|
The commit e10f67e91728f1e576803df884049ecbd92874d0 tries to keep device
|
||||||
|
node symlinks even if the device is in the suspended state. However,
|
||||||
|
necessary properties that may previously obtained by the blkid command
|
||||||
|
were not imported at least in the .rules file. So, unless ID_FS_xyz
|
||||||
|
properties are imported by another earlier .rules file, the device node
|
||||||
|
symlinks are still lost when event is processed in the suspended state.
|
||||||
|
|
||||||
|
Let's explicitly import the necessary properties.
|
||||||
|
|
||||||
|
RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=2158628
|
||||||
|
GHPR: https://github.com/lvmteam/lvm2/pull/105
|
||||||
|
(cherry picked from commit 94f77a4d8d9737fca05fb4e451678ec440c68670)
|
||||||
|
---
|
||||||
|
WHATS_NEW_DM | 4 ++++
|
||||||
|
udev/13-dm-disk.rules.in | 14 ++++++++++++--
|
||||||
|
2 files changed, 16 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/WHATS_NEW_DM b/WHATS_NEW_DM
|
||||||
|
index f676ff7e1..c129c7f8a 100644
|
||||||
|
--- a/WHATS_NEW_DM
|
||||||
|
+++ b/WHATS_NEW_DM
|
||||||
|
@@ -1,3 +1,7 @@
|
||||||
|
+Version 1.02.191 -
|
||||||
|
+=====================================
|
||||||
|
+ Import previous ID_FS_* udev records in 13-dm-disk.rules for suspended DM dev.
|
||||||
|
+
|
||||||
|
Version 1.02.187 - 10th November 2022
|
||||||
|
=====================================
|
||||||
|
Add DM_REPORT_GROUP_JSON_STD for more JSON standard compliant output format.
|
||||||
|
diff --git a/udev/13-dm-disk.rules.in b/udev/13-dm-disk.rules.in
|
||||||
|
index 5cc08121e..dca00bc01 100644
|
||||||
|
--- a/udev/13-dm-disk.rules.in
|
||||||
|
+++ b/udev/13-dm-disk.rules.in
|
||||||
|
@@ -17,12 +17,22 @@ ENV{DM_UDEV_DISABLE_DISK_RULES_FLAG}=="1", GOTO="dm_end"
|
||||||
|
SYMLINK+="disk/by-id/dm-name-$env{DM_NAME}"
|
||||||
|
ENV{DM_UUID}=="?*", SYMLINK+="disk/by-id/dm-uuid-$env{DM_UUID}"
|
||||||
|
|
||||||
|
-ENV{DM_SUSPENDED}=="1", ENV{DM_UDEV_PRIMARY_SOURCE_FLAG}=="1", GOTO="dm_link"
|
||||||
|
-ENV{DM_NOSCAN}=="1", ENV{DM_UDEV_PRIMARY_SOURCE_FLAG}=="1", GOTO="dm_link"
|
||||||
|
+ENV{DM_SUSPENDED}=="1", ENV{DM_UDEV_PRIMARY_SOURCE_FLAG}=="1", GOTO="dm_import"
|
||||||
|
+ENV{DM_NOSCAN}=="1", ENV{DM_UDEV_PRIMARY_SOURCE_FLAG}=="1", GOTO="dm_import"
|
||||||
|
ENV{DM_SUSPENDED}=="1", GOTO="dm_end"
|
||||||
|
ENV{DM_NOSCAN}=="1", GOTO="dm_watch"
|
||||||
|
|
||||||
|
(BLKID_RULE)
|
||||||
|
+GOTO="dm_link"
|
||||||
|
+
|
||||||
|
+LABEL="dm_import"
|
||||||
|
+IMPORT{db}="ID_FS_USAGE"
|
||||||
|
+IMPORT{db}="ID_FS_UUID_ENC"
|
||||||
|
+IMPORT{db}="ID_FS_LABEL_ENC"
|
||||||
|
+IMPORT{db}="ID_PART_ENTRY_NAME"
|
||||||
|
+IMPORT{db}="ID_PART_ENTRY_UUID"
|
||||||
|
+IMPORT{db}="ID_PART_ENTRY_SCHEME"
|
||||||
|
+IMPORT{db}="ID_PART_GPT_AUTO_ROOT"
|
||||||
|
|
||||||
|
LABEL="dm_link"
|
||||||
|
ENV{DM_UDEV_LOW_PRIORITY_FLAG}=="1", OPTIONS="link_priority=-100"
|
||||||
|
--
|
||||||
|
2.39.1
|
||||||
|
|
18
lvm2.spec
18
lvm2.spec
@ -63,7 +63,7 @@ Version: 2.03.17
|
|||||||
#Release: 0.1.20211115git%{shortcommit}%{?dist}%{?rel_suffix}
|
#Release: 0.1.20211115git%{shortcommit}%{?dist}%{?rel_suffix}
|
||||||
Release: 4%{?dist}%{?rel_suffix}
|
Release: 4%{?dist}%{?rel_suffix}
|
||||||
%else
|
%else
|
||||||
Release: 5%{?dist}%{?rel_suffix}
|
Release: 6%{?dist}%{?rel_suffix}
|
||||||
%endif
|
%endif
|
||||||
License: GPLv2
|
License: GPLv2
|
||||||
URL: http://sourceware.org/lvm2
|
URL: http://sourceware.org/lvm2
|
||||||
@ -83,6 +83,13 @@ Patch4: 0004-vgimportclone-fix-importing-PV-without-metadata.patch
|
|||||||
# BZ 2164044:
|
# BZ 2164044:
|
||||||
Patch5: 0005-lvmdbusd-Move-get_error_msg-to-utils.patch
|
Patch5: 0005-lvmdbusd-Move-get_error_msg-to-utils.patch
|
||||||
Patch6: 0006-lvmdbusd-Add-command_log_selection-to-command-line.patch
|
Patch6: 0006-lvmdbusd-Add-command_log_selection-to-command-line.patch
|
||||||
|
# BZ 2162144:
|
||||||
|
Patch7: 0007-tests-lvresize-fs-crypt-using-helper-only-for-crypt-.patch
|
||||||
|
Patch8: 0008-lvresize-only-resize-crypt-when-fs-resize-is-enabled.patch
|
||||||
|
# BZ 2164226:
|
||||||
|
Patch9: 0009-lvresize-fail-early-if-mounted-LV-was-renamed.patch
|
||||||
|
# BZ 2158628:
|
||||||
|
Patch10: 0010-udev-import-previous-results-of-blkid-when-in-suspen.patch
|
||||||
|
|
||||||
BuildRequires: make
|
BuildRequires: make
|
||||||
BuildRequires: gcc
|
BuildRequires: gcc
|
||||||
@ -149,6 +156,10 @@ or more physical volumes and creating one or more logical volumes
|
|||||||
%patch4 -p1 -b .backup4
|
%patch4 -p1 -b .backup4
|
||||||
%patch5 -p1 -b .backup5
|
%patch5 -p1 -b .backup5
|
||||||
%patch6 -p1 -b .backup6
|
%patch6 -p1 -b .backup6
|
||||||
|
%patch7 -p1 -b .backup7
|
||||||
|
%patch8 -p1 -b .backup8
|
||||||
|
%patch9 -p1 -b .backup9
|
||||||
|
%patch10 -p1 -b .backup10
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%global _default_pid_dir /run
|
%global _default_pid_dir /run
|
||||||
@ -720,6 +731,11 @@ An extensive functional testsuite for LVM2.
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Feb 09 2023 Marian Csontos <mcsontos@redhat.com> - 2.03.17-6
|
||||||
|
- Fix lvresize resizing LUKS device only when resizing FS is enabled.
|
||||||
|
- Improve lvresize handling of renamed volumes.
|
||||||
|
- Fix random unmount when resizing volume backed by thin pool.
|
||||||
|
|
||||||
* Fri Jan 27 2023 Marian Csontos <mcsontos@redhat.com> - 2.03.17-5
|
* Fri Jan 27 2023 Marian Csontos <mcsontos@redhat.com> - 2.03.17-5
|
||||||
- Fix vgimportclone fail if PV has no metadata.
|
- Fix vgimportclone fail if PV has no metadata.
|
||||||
- Fix lvmdbusd missing stderr for commands not returning JSON.
|
- Fix lvmdbusd missing stderr for commands not returning JSON.
|
||||||
|
Loading…
Reference in New Issue
Block a user