6 Commits

10 changed files with 419 additions and 145 deletions

Binary file not shown.

View File

@@ -1,16 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEE1QGkeEQK4v0TChvouREkMeUJA58FAmdW28AACgkQuREkMeUJ
A5/RlxAAyjDB0s/gr74RY7B7+NH5iyNEwuBdmZHa3c9ppi/uNKY1ue3lmTCXdmx8
3GP19LpjmwTOe0T+BCAOuUPTS1mzDMwQGIcsEngSoWvU6GjS6kJNcM1r276RlPSI
8LgR1qrecDde6lB3eRyEqJAFPcfwhj9zK1/EKk3HsAWr0Fy9fb7asGC0gY7JdVtg
lPoz714gMtZRqRbegjJ7IM7pE00q84vOHGac++FZ4atxMQ1SEpXN9PN6sY4B0m6k
X6XRRdO6gf5rS+toE+dX/NTEA9seqZG3ml+65Yu+87T9qzKuGpa/+zOTwVrTJUMO
R71muoUlscCv4yI7zPWHdyO15fOBxWNOSiuEkduFqNCNBCRtasMDVcK+fglTTc87
r3x2qwauAP/GTZNY4DZAWyxANS39Na/i77OXcYoDR8LSVU0jd5MlIRRjrL67Tu9v
wWVCcSTzYl+5XJUwe2OGoDOW56nWM/q7i00SJ82Ez4Q2nl5XTkCvkeyR3bgUOTi7
mSNp265E2Pzk3cZKwK3eqql9N0frbnRsWFTrF94F1I/wAI6Sk7O84cLtyhXLufGS
6+IC+d9mNKVVC+Ql+/IXM4ovA9sKW5kUs01Sm02fiva6DvsATOBp7wu5QnS+2aPt
1SJ5wFMrEmyO8oDd8M8uBkwG5rH4dvUGKJJn1e7C17TFxIItkHA=
=q6VK
-----END PGP SIGNATURE-----

3
LVM2.2.03.38.tgz Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:322d44bf40de318e6e6b52c56999aaeb86b16c8267187ac2e01a44d4dc526960
size 2985871

16
LVM2.2.03.38.tgz.asc Normal file
View File

@@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEE1QGkeEQK4v0TChvouREkMeUJA58FAmlAGAgACgkQuREkMeUJ
A5/w3A/+LZ21wT+hNeFLXhXDj3syBWQeqUBV3Agsb6RgYAtyDb9XoD1b1VdccQv1
jvsH4xtH1ogVB3CgoNcANDhcEKLEwHNVZ1chP1dubyPHulERDOi2mkk6ybRzKCA2
yfaX1PdePs66wnlcZ/BccsFn1cYtkSe9FjlJd3CmI9Pm6YxCTeqZgumfHhyOiyLm
dhlbbBTEJSeY7XxtNGUDxMStR+mudyJg4GYjqg9QrQQn+qDSeQwOJ+XRjcte9gic
LgSdH1gFuGYAmtJHOSm3b4HXtUpw4yQwzqXT24fUG5b6Uxvyot8T1QVJi+bW+u6W
en/x5mJui5qOsNr27RNht4yeC7091rIqaAR7BbcOFZt9AzoWnnl9ZCB3sRnvd9Ba
CqXAueUSZhhr0RRib4CdW/SP6zZZh2KcMCVYgJUfUtbveM+5OomAIOvdZXSE1waZ
xBNPyzRGZ6bq8aBO3o9AH2ajr5iyNxdFI/kLCp0PyAd57+90y9rHr5Kf+kcUVIx/
L6XWK7XAkoVWJeR+govmmNiHlSteqQdm1bA9w1cDoygg3ywuAhsQPV9r1UfIOwz8
G5vIaaIO0eREjkwXh3/SztYQkYDB1j++oKd6qH46mL2sT0W9oZFyXD1zUmQNzQsF
RDdPmpHYJ/F/kcRKJVJ+htalx1uKbOqDqKpPrczkWqqrTPeUVfQ=
=4eo7
-----END PGP SIGNATURE-----

View File

@@ -4,13 +4,13 @@
lib/display/display.c | 13 +++++++++----
3 files changed, 13 insertions(+), 4 deletions(-)
Index: LVM2.2.02.170/lib/config/config_settings.h
Index: LVM2.2.03.38/lib/config/config_settings.h
===================================================================
--- LVM2.2.02.170.orig/lib/config/config_settings.h
+++ LVM2.2.02.170/lib/config/config_settings.h
@@ -1039,6 +1039,9 @@ cfg(global_fsadm_executable_CFG, "fsadm_
"The full path to the fsadm command.\n"
"LVM uses this command to help with lvresize -r operations.\n")
--- LVM2.2.03.38.orig/lib/config/config_settings.h
+++ LVM2.2.03.38/lib/config/config_settings.h
@@ -1351,6 +1351,9 @@
"The full path to the lvresize_fs_helper command.\n"
"LVM uses this command to help with filesystem operations during lvresize.\n")
+cfg(global_display_dm_name_for_lv_name_CFG, "display_dm_name_for_lv_name", global_CFG_SECTION, CFG_DEFAULT_COMMENTED, CFG_TYPE_BOOL, DEFAULT_DISPLAY_DM_NAME_FOR_LV_NAME, vsn(2, 2, 98), NULL, 0, NULL,
+ "Display dm name for lv name.\n")
@@ -18,11 +18,11 @@ Index: LVM2.2.02.170/lib/config/config_settings.h
cfg(global_system_id_source_CFG, "system_id_source", global_CFG_SECTION, CFG_DEFAULT_COMMENTED, CFG_TYPE_STRING, DEFAULT_SYSTEM_ID_SOURCE, vsn(2, 2, 117), NULL, 0, NULL,
"The method LVM uses to set the local system ID.\n"
"Volume Groups can also be given a system ID (by vgcreate, vgchange,\n"
Index: LVM2.2.02.170/lib/config/defaults.h
Index: LVM2.2.03.38/lib/config/defaults.h
===================================================================
--- LVM2.2.02.170.orig/lib/config/defaults.h
+++ LVM2.2.02.170/lib/config/defaults.h
@@ -33,6 +33,7 @@
--- LVM2.2.03.38.orig/lib/config/defaults.h
+++ LVM2.2.03.38/lib/config/defaults.h
@@ -45,6 +45,7 @@
#define DEFAULT_OBTAIN_DEVICE_LIST_FROM_UDEV 0
#define DEFAULT_EXTERNAL_DEVICE_INFO_SOURCE "none"
#define DEFAULT_SYSFS_SCAN 1
@@ -30,11 +30,11 @@ Index: LVM2.2.02.170/lib/config/defaults.h
#define DEFAULT_MD_COMPONENT_DETECTION 1
#define DEFAULT_FW_RAID_COMPONENT_DETECTION 0
#define DEFAULT_MD_CHUNK_ALIGNMENT 1
Index: LVM2.2.02.170/lib/display/display.c
Index: LVM2.2.03.38/lib/display/display.c
===================================================================
--- LVM2.2.02.170.orig/lib/display/display.c
+++ LVM2.2.02.170/lib/display/display.c
@@ -413,10 +413,15 @@ int lvdisplay_full(struct cmd_context *c
--- LVM2.2.03.38.orig/lib/display/display.c
+++ LVM2.2.03.38/lib/display/display.c
@@ -452,10 +452,15 @@
lv->vg->cmd->dev_dir, lv->vg->name, lv->name);
else if (lv_is_visible(lv)) {
/* Thin pool does not have /dev/vg/name link */

View File

@@ -31,10 +31,10 @@ Signed-off-by: Heming Zhao <heming.zhao@suse.com>
scripts/fsadm.sh | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 86 insertions(+), 2 deletions(-)
diff --git a/scripts/fsadm.sh b/scripts/fsadm.sh
index 9ae422f55edf..a7345c503f77 100755
--- a/scripts/fsadm.sh
+++ b/scripts/fsadm.sh
Index: LVM2.2.03.38/scripts/fsadm.sh
===================================================================
--- LVM2.2.03.38.orig/scripts/fsadm.sh 2025-12-23 13:05:56.339324006 +0800
+++ LVM2.2.03.38/scripts/fsadm.sh 2025-12-23 13:07:44.671817336 +0800
@@ -22,6 +22,7 @@
# ext2/ext3/ext4: resize2fs, tune2fs
# reiserfs: resize_reiserfs, reiserfstune
@@ -43,7 +43,7 @@ index 9ae422f55edf..a7345c503f77 100755
#
# Return values:
# 0 success
@@ -59,6 +60,7 @@ XFS_CHECK="xfs_check"
@@ -88,6 +89,7 @@
# XFS_REPAIR -n is used when XFS_CHECK is not found
XFS_REPAIR="xfs_repair"
CRYPTSETUP="cryptsetup"
@@ -51,7 +51,7 @@ index 9ae422f55edf..a7345c503f77 100755
# user may override lvm location by setting LVM_BINARY
LVM=${LVM_BINARY:-lvm}
@@ -78,6 +80,9 @@ BLOCKCOUNT=
@@ -107,6 +109,9 @@
MOUNTPOINT=
MOUNTED=
REMOUNT=
@@ -61,7 +61,7 @@ index 9ae422f55edf..a7345c503f77 100755
PROCDIR="/proc"
PROCMOUNTS="$PROCDIR/mounts"
PROCSELFMOUNTINFO="$PROCDIR/self/mountinfo"
@@ -237,6 +242,33 @@ detect_fs() {
@@ -276,6 +281,33 @@
verbose "\"$FSTYPE\" filesystem found on \"$VOLUME\"."
}
@@ -95,7 +95,7 @@ index 9ae422f55edf..a7345c503f77 100755
# Check that passed mounted MAJOR:MINOR is not matching $MAJOR:MINOR of resized $VOLUME
validate_mounted_major_minor() {
@@ -365,7 +397,11 @@ detect_mounted_with_proc_mounts() {
@@ -404,7 +436,11 @@
# check if the given device is already mounted and where
# FIXME: resolve swap usage and device stacking
detect_mounted() {
@@ -108,8 +108,8 @@ index 9ae422f55edf..a7345c503f77 100755
detect_mounted_with_proc_self_mountinfo
elif test -e "$PROCMOUNTS"; then
detect_mounted_with_proc_mounts
@@ -662,6 +698,47 @@ resize_crypt() {
dry "$CRYPTSETUP" resize "$1" --size $CRYPT_RESIZE_BLOCKS || error "$CRYPTSETUP failed to resize device $1"
@@ -713,6 +749,47 @@
"Target size: $CRYPT_RESIZE_BLOCKS sectors."
}
+########################
@@ -156,15 +156,15 @@ index 9ae422f55edf..a7345c503f77 100755
####################
# Resize filesystem
####################
@@ -685,6 +762,7 @@ resize() {
@@ -736,6 +813,7 @@
"crypto_LUKS")
which "$CRYPTSETUP" >"$NULL" 2>&1 || error "$CRYPTSETUP utility required to resize LUKS volume"
which "$CRYPTSETUP" >"$NULL" 2>&1 || error "$CRYPTSETUP utility required to resize LUKS volume."
CMD=resize_luks ;;
+ "btrfs") CMD=resize_btrfs ;;
*) error "Filesystem \"$FSTYPE\" on device \"$VOLUME\" is not supported by this tool." ;;
esac
@@ -762,6 +840,12 @@ check() {
@@ -820,6 +898,12 @@
which "$CRYPTSETUP" >"$NULL" 2>&1 || error "$CRYPTSETUP utility required."
check_luks || error "Crypto luks check failed."
;;
@@ -177,7 +177,7 @@ index 9ae422f55edf..a7345c503f77 100755
*)
error "Filesystem \"$FSTYPE\" on device \"$VOLUME\" is not supported by this tool." ;;
esac
@@ -780,7 +864,7 @@ test -n "${FSADM_RUNNING-}" && exit 0
@@ -838,7 +922,7 @@
for i in "$TUNE_EXT" "$RESIZE_EXT" "$TUNE_REISER" "$RESIZE_REISER" \
"$TUNE_XFS" "$RESIZE_XFS" "$MOUNT" "$UMOUNT" "$MKDIR" \
"$RMDIR" "$BLOCKDEV" "$BLKID" "$GREP" "$READLINK" \
@@ -186,6 +186,3 @@ index 9ae422f55edf..a7345c503f77 100755
test -n "$i" || error "Required command definitions in the script are missing!"
done
--
1.8.3.1

View File

@@ -11,19 +11,11 @@ Signed-off-by: Heming Zhao <heming.zhao@suse.com>
man/fsadm.8_main | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/man/fsadm.8_main b/man/fsadm.8_main
index dfff5bb97021..ad924ac3a304 100644
--- a/man/fsadm.8_main
+++ b/man/fsadm.8_main
@@ -31,6 +31,7 @@ It tries to use the same API for
.BR ext2 ,
.BR ext3 ,
.BR ext4 ,
+.BR btrfs ,
.BR ReiserFS
and
.BR XFS
@@ -119,6 +120,9 @@ Defaults to "\fI/dev\fP" and must be an absolute path.
Index: LVM2.2.03.38/man/fsadm.8_main
===================================================================
--- LVM2.2.03.38.orig/man/fsadm.8_main 2025-12-23 12:06:54.757212415 +0800
+++ LVM2.2.03.38/man/fsadm.8_main 2025-12-23 12:07:22.353229247 +0800
@@ -135,6 +135,9 @@
.BR tune2fs (8),
.BR resize2fs (8),
.P
@@ -33,6 +25,3 @@ index dfff5bb97021..ad924ac3a304 100644
.BR reiserfstune (8),
.BR resize_reiserfs (8),
.P
--
1.8.3.1

226
lvm.conf
View File

@@ -36,6 +36,19 @@ config {
# This configuration option has an automatic default value.
# checks = 1
# Configuration option config/validate_metadata.
# Allows selecting the level of validation after metadata transformation.
# Validation takes extra CPU time to verify internal consistency.
# Accepted values:
# full
# Do a full metadata validation before disk write.
# none
# Skip any checks (unrecommended, slightly faster).
#
# This configuration option is advanced.
# This configuration option has an automatic default value.
# validate_metadata = "full"
# Configuration option config/abort_on_errors.
# Abort the LVM process if a configuration mismatch is found.
# This configuration option has an automatic default value.
@@ -137,6 +150,16 @@ devices {
# This configuration option has an automatic default value.
# devicesfile = "system.devices"
# Configuration option devices/devicesfile_backup_limit.
# The max number of backup files to keep in /etc/lvm/devices/backup.
# LVM creates a backup of the devices file each time a new
# version is created, or each time a modification is detected.
# When the max number of backups is reached, the oldest are
# removed to remain at the limit. Set to 0 to disable backups.
# Only the system devices file is backed up.
# This configuration option has an automatic default value.
# devicesfile_backup_limit = 50
# Configuration option devices/search_for_devnames.
# Look outside of the devices file for missing devname entries.
# A devname entry is used for a device that does not have a stable
@@ -153,6 +176,32 @@ devices {
# This configuration option has an automatic default value.
# search_for_devnames = "auto"
# Configuration option devices/device_ids_refresh.
# Find PVs on new devices and update the device IDs in the devices file.
# If PVs are restored or moved to a new system with new devices, but
# an old system.devices remains with old device IDs, then search for
# the PVIDs on new devices and update the device IDs in system.devices.
# See device_ids_refresh_check for conditions that trigger the refresh.
# Set to 1 to enable a single automatic refresh attempt when a trigger
# condition is detected. Set to 0 to disable automatic refresh.
# Set to a value between 10 and 600 (in seconds) to enable an extended
# refresh period during which missing PVs will be located using the PVID,
# and the system.devices device ID updated if the PV is found on a new device.
# An extended refresh period may be useful if devices require refresh,
# but are attached to the system some time the initial refresh.
# This configuration option has an automatic default value.
# device_ids_refresh = 10
# Configuration option devices/device_ids_refresh_checks.
# Conditions that trigger device_ids_refresh to locate PVIDs on new devices.
# product_uuid: refresh if /sys/devices/virtual/dmi/id/product_uuid does not
# match the value saved in system.devices.
# hostname: refresh if hostname does not match the value saved in system.devices.
# (hostname is used if product_uuid is not available.)
# Remove values from this list to prevent lvm from using them.
# This configuration option has an automatic default value.
# device_ids_refresh_checks = [ "product_uuid", "hostname" ]
# Configuration option devices/filter.
# Limit the block devices that are used by LVM commands.
# This is a list of regular expressions used to accept or reject block
@@ -166,7 +215,7 @@ devices {
# device is rejected. Unmatching path names do not affect the accept
# or reject decision. If no path names for a device match a pattern,
# then the device is accepted. Be careful mixing 'a' and 'r' patterns,
# as the combination might produce unexpected results (test changes.)
# as the combination might produce unexpected results (test changes).
# Run vgscan after changing the filter to regenerate the cache.
#
# Example
@@ -211,22 +260,17 @@ devices {
# Configuration option devices/sysfs_scan.
# Restrict device scanning to block devices appearing in sysfs.
# This is a quick way of filtering out block devices that are not
# present on the system. sysfs must be part of the kernel and mounted.)
# present on the system. sysfs must be part of the kernel and mounted).
# This configuration option has an automatic default value.
# sysfs_scan = 1
# Configuration option devices/scan_lvs.
# Scan LVM LVs for layered PVs, allowing LVs to be used as PVs.
# When 1, LVM will detect PVs layered on LVs, and caution must be
# taken to avoid a host accessing a layered VG that may not belong
# to it, e.g. from a guest image. This generally requires excluding
# the LVs with device filters. Also, when this setting is enabled,
# every LVM command will scan every active LV on the system (unless
# filtered), which can cause performance problems on systems with
# many active LVs. When this setting is 0, LVM will not detect or
# use PVs that exist on LVs, and will not allow a PV to be created on
# an LV. The LVs are ignored using a built in device filter that
# identifies and excludes LVs.
# Allow LVM LVs to be used as PVs. When enabled, LVM commands will
# scan active LVs to look for other PVs. Caution is required to
# avoid using PVs that belong to guest images stored on LVs.
# When enabled, the LVs scanned should be restricted using the
# devices file or the filter. This option does not enable autoactivation
# of layered VGs, which requires editing LVM udev rules (see LVM_PVSCAN_ON_LVS).
# This configuration option has an automatic default value.
# scan_lvs = 0
@@ -305,7 +349,7 @@ devices {
# penalty, e.g. MD chunk size. optimal_io_size is the device's
# preferred unit of receiving I/O, e.g. MD stripe width.
# minimum_io_size is used if optimal_io_size is undefined (0).
# If md_chunk_alignment is enabled, that detects the optimal_io_size.
# If md_chunk_alignment is enabled, it will detect the optimal_io_size.
# default_data_alignment and md_chunk_alignment will be overridden
# if they are not aligned with the value detected for this setting.
# This setting is overridden by data_alignment and the --dataalignment
@@ -466,7 +510,7 @@ allocation {
# is not claimed incorrectly by other tools because of old signatures
# from previous use. The number of signatures that LVM can detect
# depends on the detection code that is selected (see
# use_blkid_wiping.) Wiping each detected signature must be confirmed.
# use_blkid_wiping). Wiping each detected signature must be confirmed.
# When this setting is disabled, signatures on new LVs are not detected
# or erased unless the --wipesignatures option is used directly.
# This configuration option has an automatic default value.
@@ -498,7 +542,7 @@ allocation {
# Accepted values:
# 0 Automatically detected best available format
# 1 Original format
# 2 Improved 2nd. generation format
# 2 Improved second-generation format
#
# This configuration option has an automatic default value.
# cache_metadata_format = 0
@@ -544,19 +588,30 @@ allocation {
# Configuration option allocation/cache_pool_max_chunks.
# The maximum number of chunks in a cache pool.
# For cache target v1.9 the recommended maximumm is 1000000 chunks.
# For cache target v1.9 the recommended maximum is 1000000 chunks.
# Using cache pool with more chunks may degrade cache performance.
# This configuration option does not have a default value defined.
# Configuration option allocation/pvmove_max_segment_size_mb.
# Maximum size in MiB of segments to mirror at once during pvmove.
# When pvmove needs to move large segments, it will split them into
# smaller chunks of this size, mirror each chunk, and update metadata
# between chunks. This prevents mirroring excessively large amounts
# of data at once. A value of 0 (default) means no limit - the entire
# segment will be mirrored at once. Setting this to e.g. 10240 will
# limit each mirroring operation to 10GiB chunks.
# This configuration option has an automatic default value.
# pvmove_max_segment_size_mb = 0
# Configuration option allocation/thin_pool_metadata_require_separate_pvs.
# Thin pool metadata and data will always use different PVs.
# This configuration option has an automatic default value.
# thin_pool_metadata_require_separate_pvs = 0
# Configuration option allocation/thin_pool_crop_metadata.
# Older version of lvm2 cropped pool's metadata size to 15.81 GiB.
# This is slightly less then the actual maximum 15.88 GiB.
# For compatibility with older version and use of cropped size set to 1.
# Older versions of lvm2 cropped pool's metadata size to 15.81 GiB.
# This is slightly less than the actual maximum 15.88 GiB.
# For compatibility with older versions and to use the cropped size, set to 1.
# This configuration option has an automatic default value.
# thin_pool_crop_metadata = 0
@@ -628,13 +683,6 @@ allocation {
# This configuration option has an automatic default value.
# vdo_use_deduplication = 1
# Configuration option allocation/vdo_use_metadata_hints.
# Enables or disables whether VDO volume should tag its latency-critical
# writes with the REQ_SYNC flag. Some device mapper targets such as dm-raid5
# process writes with this flag at a higher priority.
# This configuration option has an automatic default value.
# vdo_use_metadata_hints = 1
# Configuration option allocation/vdo_minimum_io_size.
# The minimum IO size for VDO volume to accept, in bytes.
# Valid values are 512 or 4096. The recommended value is 4096.
@@ -657,11 +705,6 @@ allocation {
# This configuration option has an automatic default value.
# vdo_block_map_period = 16380
# Configuration option allocation/vdo_check_point_frequency.
# The default check point frequency for VDO volume.
# This configuration option has an automatic default value.
# vdo_check_point_frequency = 0
# Configuration option allocation/vdo_use_sparse_index.
# Enables sparse indexing for VDO volume.
# This configuration option has an automatic default value.
@@ -738,19 +781,6 @@ allocation {
# This configuration option has an automatic default value.
# vdo_physical_threads = 1
# Configuration option allocation/vdo_write_policy.
# Specifies the write policy:
# auto - VDO will check the storage device and determine whether it supports flushes.
# If it does, VDO will run in async mode, otherwise it will run in sync mode.
# sync - Writes are acknowledged only after data is stably written.
# This policy is not supported if the underlying storage is not also synchronous.
# async - Writes are acknowledged after data has been cached for writing to stable storage.
# Data which has not been flushed is not guaranteed to persist in this mode.
# async-unsafe - Writes are handled like 'async' but there is no guarantee of the atomicity async provides.
# This mode should only be used for better performance when atomicity is not required.
# This configuration option has an automatic default value.
# vdo_write_policy = "auto"
# Configuration option allocation/vdo_max_discard.
# Specified the maximum size of discard bio accepted, in 4096 byte blocks.
# I/O requests to a VDO volume are normally split into 4096-byte blocks,
@@ -764,7 +794,7 @@ allocation {
# vdo_max_discard = 1
# Configuration option allocation/vdo_pool_header_size.
# Specified the emptry header size in KiB at the front and end of vdo pool device.
# Specified the empty header size in KiB at the front and end of vdo pool device.
# This configuration option has an automatic default value.
# vdo_pool_header_size = 512
}
@@ -788,6 +818,9 @@ log {
# to define fields to display and sort fields for the log report.
# You can also use log/command_log_selection to define selection
# criteria used each time the log is reported.
# Note that if report/output_format (or --reportformat command line
# option) is set to json or json_std, then log/report_command_log=1
# is default.
# This configuration option has an automatic default value.
# report_command_log = 0
@@ -817,8 +850,9 @@ log {
# define selection criteria for log report on command line directly
# using <lvm command> --configreport log -S <selection criteria>
# which has precedence over log/command_log_selection setting.
# For more information about selection criteria in general, see
# lvm(8) man page.
# To make all the command log lines visible, use "all" value
# for the command log selection. For more information about selection
# criteria in general, see lvmreport(7) man page.
# This configuration option has an automatic default value.
# command_log_selection = "!(log_type=status && message=success)"
@@ -892,7 +926,7 @@ log {
# Configuration option log/activation.
# Log messages during activation.
# Don't use this in low memory situations (can deadlock).
# Do not use this in low memory situations (can deadlock).
# This configuration option has an automatic default value.
# activation = 0
@@ -1068,7 +1102,7 @@ global {
# Additionally, read-only commands that encounter metadata in need of
# repair will still be allowed to proceed exactly as if the repair had
# been performed (except for the unchanged vg_seqno). Inappropriate
# use could mess up your system, so seek advice first!
# use could corrupt your system, so seek advice first!
# This configuration option has an automatic default value.
# metadata_read_only = 0
@@ -1199,10 +1233,20 @@ global {
# This configuration option has an automatic default value.
# sanlock_lv_extend = 256
# Configuration option global/sanlock_align_size.
# The sanlock lease size in MiB to use on disks with a 4K sector size.
# Possible values are 1,2,4,8. The default is 8, which supports up to
# 2000 hosts (and max host_id 2000). Smaller values support smaller
# numbers of max hosts (and max host_ids): 250, 500, 1000, 2000 for
# lease sizes 1,2,4,8. Disks with 512 byte sectors always use 1MiB
# leases and support 2000 hosts, and are not affected by this setting.
# This configuration option has an automatic default value.
# sanlock_align_size = 8
# Configuration option global/lvmlockctl_kill_command.
# The command that lvmlockctl --kill should use to force LVs offline.
# The lvmlockctl --kill command is run when a shared VG has lost
# access to locks (e.g. when sanlock has lost access to storage.)
# access to locks (e.g. when sanlock has lost access to storage).
# An empty string means that there will be no automatic attempt by
# lvmlockctl --kill to forcibly shut down LVs in the VG, and the user
# can manually intervene as described in lvmlockd(8).
@@ -1212,7 +1256,7 @@ global {
# Configuration option global/thin_check_executable.
# The full path to the thin_check command.
# LVM uses this command to check that a thin metadata device is in a
# LVM uses this command to check that a thin pool metadata device is in a
# usable state. When a thin pool is activated and after it is
# deactivated, this command is run. Activation will only proceed if
# the command has an exit status of 0. Set to "" to skip this check.
@@ -1236,6 +1280,14 @@ global {
# This configuration option has an automatic default value.
# thin_repair_executable = "/usr/sbin/thin_repair"
# Configuration option global/thin_restore_executable.
# The full path to the thin_restore command.
# LVM uses this command to restore generated data for a thin pool metadata device.
# Also see thin_restore_options.
# (See package device-mapper-persistent-data or thin-provisioning-tools)
# This configuration option has an automatic default value.
# thin_restore_executable = "/usr/sbin/thin_restore"
# Configuration option global/thin_check_options.
# List of options passed to the thin_check command.
# With thin_check version 2.1 or newer you can add the option
@@ -1250,6 +1302,11 @@ global {
# This configuration option has an automatic default value.
# thin_repair_options = [ "" ]
# Configuration option global/thin_restore_options.
# List of options passed to the thin_restore command.
# This configuration option has an automatic default value.
# thin_restore_options = [ "" ]
# Configuration option global/thin_disabled_features.
# Features to not use in the thin driver.
# This can be helpful for testing, or to avoid using a feature that is
@@ -1298,6 +1355,14 @@ global {
# This configuration option has an automatic default value.
# cache_repair_executable = "/usr/sbin/cache_repair"
# Configuration option global/cache_restore_executable.
# The full path to the cache_restore command.
# LVM uses this command to restore generated data for a cache metadata device.
# Also see cache_restore_options.
# (See package device-mapper-persistent-data or thin-provisioning-tools)
# This configuration option has an automatic default value.
# cache_restore_executable = "/usr/sbin/cache_restore"
# Configuration option global/cache_check_options.
# List of options passed to the cache_check command.
# With cache_check version 5.0 or newer you should include the option
@@ -1310,6 +1375,11 @@ global {
# This configuration option has an automatic default value.
# cache_repair_options = [ "" ]
# Configuration option global/cache_restore_options.
# List of options passed to the cache_restore command.
# This configuration option has an automatic default value.
# cache_restore_options = [ "" ]
# Configuration option global/vdo_format_executable.
# The full path to the vdoformat command.
# LVM uses this command to initial data volume for VDO type logical volume
@@ -1324,10 +1394,10 @@ global {
# Configuration option global/vdo_disabled_features.
# Features to not use in the vdo driver.
# This can be helpful for testing, or to avoid using a feature that is
# causing problems. Features include: online_rename
# causing problems. Features include: online_rename, version4
#
# Example
# vdo_disabled_features = [ "online_rename" ]
# vdo_disabled_features = [ "online_rename", "version4" ]
#
# This configuration option does not have a default value defined.
@@ -1337,10 +1407,16 @@ global {
# This configuration option has an automatic default value.
# fsadm_executable = "/sbin/fsadm"
# Configuration option global/lvresize_fs_helper_executable.
# The full path to the lvresize_fs_helper command.
# LVM uses this command to help with filesystem operations during lvresize.
# This configuration option has an automatic default value.
# lvresize_fs_helper_executable = "/usr/libexec/lvresize_fs_helper"
# Configuration option global/system_id_source.
# The method LVM uses to set the local system ID.
# Volume Groups can also be given a system ID (by vgcreate, vgchange,
# or vgimport.) A VG on shared storage devices is accessible only to
# or vgimport). A VG on shared storage devices is accessible only to
# the host with a matching system ID. See 'man lvmsystemid' for
# information on limitations and correct usage.
#
@@ -1357,8 +1433,9 @@ global {
# Use an LVM-specific derivation of the local machine-id as the
# system ID. See 'man machine-id'.
# machineid
# Use the contents of the machine-id file to set the system ID
# (appmachineid is recommended.)
# Use the contents of the machine-id file to set the system ID.
# (appmachineid is recommended to avoid exposing the confidential
# machine-id.)
# file
# Use the contents of another file (system_id_file) to set the
# system ID.
@@ -1475,13 +1552,15 @@ activation {
# Configuration option activation/reserved_stack.
# Stack size in KiB to reserve for use while devices are suspended.
# Insufficent reserve risks I/O deadlock during device suspension.
# Insufficient reserve risks I/O deadlock during device suspension.
# Value 0 disables memory locking.
# This configuration option has an automatic default value.
# reserved_stack = 64
# Configuration option activation/reserved_memory.
# Memory size in KiB to reserve for use while devices are suspended.
# Insufficent reserve risks I/O deadlock during device suspension.
# Insufficient reserve risks I/O deadlock during device suspension.
# Value 0 disables memory locking.
# This configuration option has an automatic default value.
# reserved_memory = 8192
@@ -1616,7 +1695,7 @@ activation {
# This includes LVs that have the following segment types:
# raid1, raid4, raid5*, and raid6*.
# If a device in the LV fails, the policy determines the steps
# performed by dmeventd automatically, and the steps perfomed by the
# performed by dmeventd automatically, and the steps performed by the
# manual command lvconvert --repair --use-policies.
# Automatic handling requires dmeventd to be monitoring the LV.
#
@@ -1640,7 +1719,7 @@ activation {
# (copies) and a mirror log. A disk log ensures that a mirror LV does
# not need to be re-synced (all copies made the same) every time a
# machine reboots or crashes. If a device in the LV fails, this policy
# determines the steps perfomed by dmeventd automatically, and the steps
# determines the steps performed by dmeventd automatically, and the steps
# performed by the manual command lvconvert --repair --use-policies.
# Automatic handling requires dmeventd to be monitoring the LV.
#
@@ -1682,7 +1761,7 @@ activation {
# Configuration option activation/snapshot_autoextend_threshold.
# Auto-extend a snapshot when its usage exceeds this percent.
# Setting this to 100 disables automatic extension.
# The minimum value is 50 (a smaller value is treated as 50.)
# The minimum value is 50 (a smaller value is treated as 50).
# Also see snapshot_autoextend_percent.
# Automatic extension requires dmeventd to be monitoring the LV.
#
@@ -1712,7 +1791,7 @@ activation {
# Configuration option activation/thin_pool_autoextend_threshold.
# Auto-extend a thin pool when its usage exceeds this percent.
# Setting this to 100 disables automatic extension.
# The minimum value is 50 (a smaller value is treated as 50.)
# The minimum value is 50 (a smaller value is treated as 50).
# Also see thin_pool_autoextend_percent.
# Automatic extension requires dmeventd to be monitoring the LV.
#
@@ -1742,7 +1821,7 @@ activation {
# Configuration option activation/vdo_pool_autoextend_threshold.
# Auto-extend a VDO pool when its usage exceeds this percent.
# Setting this to 100 disables automatic extension.
# The minimum value is 50 (a smaller value is treated as 50.)
# The minimum value is 50 (a smaller value is treated as 50).
# Also see vdo_pool_autoextend_percent.
# Automatic extension requires dmeventd to be monitoring the LV.
#
@@ -1802,7 +1881,7 @@ activation {
# Configuration option activation/polling_interval.
# Check pvmove or lvconvert progress at this interval (seconds).
# When pvmove or lvconvert must wait for the kernel to finish
# synchronising or merging data, they check and report progress at
# synchronizing or merging data, they check and report progress at
# intervals of this number of seconds. If this is set to 0 and there
# is only one thing to wait for, there are no progress reports, but
# the process is awoken immediately once the operation is complete.
@@ -1830,7 +1909,7 @@ activation {
# uses are present. Other PVs in the Volume Group may be missing.
# degraded
# Like complete, but additionally RAID LVs of segment type raid1,
# raid4, raid5, radid6 and raid10 will be activated if there is no
# raid4, raid5, raid6 and raid10 will be activated if there is no
# data loss, i.e. they have sufficient redundancy to present the
# entire addressable range of the Logical Volume.
# partial
@@ -1955,7 +2034,7 @@ activation {
# If there is more than one report per command, then the format
# is applied for all reports. You can also change output format
# directly on command line using --reportformat option which
# has precedence over log/output_format setting.
# has precedence over report/output_format setting.
# Accepted values:
# basic
# Original format with columns and rows. If there is more than
@@ -1969,12 +2048,13 @@ activation {
# - it does not use double quotes around numeric values,
# - it uses 'null' for undefined numeric values,
# - it prints string list as proper JSON array of strings instead of a single string.
# Note that if json or json_std output format is used, then log/command_log_report=1 is default.
# This configuration option has an automatic default value.
# output_format = "basic"
# Configuration option report/compact_output.
# Do not print empty values for all report fields.
# If enabled, all fields that don't have a value set for any of the
# If enabled, all fields that do not have a value set for any of the
# rows reported are skipped and not printed. Compact output is
# applicable only if report/buffered is enabled. If you need to
# compact only specified fields, use compact_output=0 and define
@@ -1984,7 +2064,7 @@ activation {
# Configuration option report/compact_output_cols.
# Do not print empty values for specified report fields.
# If defined, specified fields that don't have a value set for any
# If defined, specified fields that do not have a value set for any
# of the rows reported are skipped and not printed. Compact output
# is applicable only if report/buffered is enabled. If you need to
# compact all fields, use compact_output=1 instead in which case
@@ -2008,7 +2088,11 @@ activation {
# buffered = 1
# Configuration option report/headings.
# Show headings for columns on report.
# Format of LVM command's report output headings.
# Accepted values:
# 0 no headings,
# 1 headings with column abbreviations,
# 2 headings with full column names.
# This configuration option has an automatic default value.
# headings = 1
@@ -2087,7 +2171,7 @@ activation {
# %F
# Equivalent to %Y-%m-%d (the ISO 8601 date format).
# %G
# The ISO 8601 week-based year with century as adecimal number.
# The ISO 8601 week-based year with century as a decimal number.
# The 4-digit year corresponding to the ISO week number (see %V).
# This has the same format and value as %Y, except that if the
# ISO week number belongs to the previous or next year, that year

View File

@@ -1,3 +1,207 @@
-------------------------------------------------------------------
Mon Dec 29 07:29:17 UTC 2025 - Glass Su <glass.su@suse.com>
- update lvm.conf: sync up with upstream v2_03_38 (bsc#1255680)
- Remove unused config options:
- allocation/vdo_use_metadata_hints
- allocation/vdo_write_policy
- allocation/vdo_check_point_frequency
- New config options
+ config/validate_metadata
+ devices/devicesfile_backup_limit
+ devices/{device_ids_refresh, device_ids_refresh_checks}
+ allocation/pvmove_max_segment_size_mb
+ global/sanlock_align_size
+ global/{thin_restore_executable, thin_restore_options, cache_restore_executable, cache_restore_options}
+ global/lvresize_fs_helper_executable
- Update comments of config options
- global/vdo_disabled_features
- devices/scan_lvs
- log/report_command_log
- log/command_log_selection
- global/system_id_source
- report/headings
- Typo fixes
-------------------------------------------------------------------
Tue Dec 22 04:56:09 UTC 2025 - Glass Su <glass.su@suse.com>
- Update lvm2 from LVM2.2.03.29 to LVM2.2.03.38
*** WHATS_NEW from 2.03.29 to 2.03.38 ***
Version 2.03.38 - 15th December 2025
====================================
Synchronize with udev after creating pool metadata spare volume.
Conversion to thin-pool removes activation skipping from converted LVs.
Configure now checks for xfs/xfs.h.
Workaround for libblkid returning old FSLASTBLOCK immediately after resize.
Enhance pvmove activation and deactivation.
LV locks whole device tree using such locked LV.
Version 2.03.37 - 21st November 2025
====================================
Remove unsupported --blockdevice option from lvscan.
Support output in list mode for all lvmconfig --typeconfig types with --list.
Enhance shutdown performance of daemons using libdaemon.
Update lvmdevices(8).
Add --force option for lvmdevices --update.
Add --listids, --delid, --addid options for manipulation by device_id to lvmdevices.
Add missing synchronization for vdopool.
Fix deadlock in lvmdbusd on SIGINT in lvm shell mode.
Add VG attr character and pr field for persistent reservation status to vgs.
Fix persistent reservations setting handling in vgmerge, vgsplit and vgimportclone.
Add missing synchronization while converting cachevols.
Warn on classic snapshot on raid creation and error on activation if missing.
Translate udev device paths in lvmdbusd for test environments.
Use source='udev' in lvmdbusd to monitor processed udev events.
Symlink to /dev nodes when using alternative dev dir to trigger udev.
Avoid passing uninitilized buffer in dmeventd to fix valgrind report.
Improve lvmdbusd matching of udevd reported device paths.
Version 2.03.36 - 24th October 2025
===================================
Fix uninitialized chunk_size_calc_policy in pool parameter functions.
Fix approximate allocation for Raid with insufficient extents.
Fix race in dmeventd remonitoring optimization (2.03.35).
Use -real suffix for pvmove UUID.
Add support pvmove segmentation allocation/pvmove_max_segmentation_size_mb.
Allow creating _imeta with multiple segments.
Fix driver_version() accepts NULL version buffer pointer.
Fix invalid free() call in error path of _add_metadata_area_to_pv().
Avoid destroying aio context in forked process.
Add lvs -o cache_promotions,cache_promotions fields.
Update pvmove logic when moving i.e. raid legs.
Display integrity info in lvdisplay.
Increase storage size for internal filter chain.
Add helper function display_mb_size().
Enhance code for adding and removing integrity to RAID volumes.
Add code for basic validation of integrity segment.
Use -real private suffix for integrity origin and meta volumes.
Use -real private suffix for mirror and raid legs.
Detect and use existing XFS quota mount options for lvresize --fs resize.
Version 2.03.35 - 09th September 2025
=====================================
Fix unlocking devices file only after all PVs are processed.
Avoid creating system.devices when deleting entries.
Fix existing issues with persistent reservations.
Fix possible report output format inconsistencies while processing PVs.
Allow report options for pv/vg/lvdisplay only if used with -C|--columns.
Fix vgsplit failing to split a VG with RAID+integrity or cache with cachevol.
Fix --lockopt handling in lvmlockd when --nolocking is used.
Optimize dmeventd when remonitoring active devices.
Version 2.03.34 - 30th July 2025
================================
Support dmeventd restart when there are no monitored devices.
Dmeventd no longer calls 'action commands' on removed devices.
Fix reader of VDO metadata on 32bit architecture.
Fix lvmdevices --deldev/--delpvid to error out if devices file not writeable.
Fix lvresize corruption in LV->crypt->FS stack if near crypt min size limit.
Enhanced lvresize -r support for btrfs.
Use glibc standard functions htoX, Xtoh functions for endian conversion.
Fix structure copying within sanlock's release_rename().
Fix autoactivation on top of loop dev PVs to trigger once for change uevents.
Add lvmlockd --lockopt repair to reinitialize corrupted sanlock leases.
Fix support for lvcreate -T --setautoactivation.
Add lvm.conf global/lvresize_fs_helper_executable.
Enable lvm to use persistent reservations on a VG.
Version 2.03.33 - 27th June 2025
================================
Various spelling, grammar, formatting, test, and build script improvements.
Override LC_NUMERIC locale if unsuitable for json_std report format.
Repair raid arrays with transiently lost devices.
Version 2.03.32 - 05th May 2025
===============================
Lvconvert vdopool conversion properly validates acceptable LVs.
Accept thin pool data LV as cacheable LV.
Allow using zram block devices (likely for testing).
Fix lvresize when resizing COW snapshots already covering origin.
Fix lvmdbusd read of executed lvm commands output.
Fix construction of DM UUID for cachevol _cdata and _cmeta devices.
Ignore PV claims from old metadata when then PV belongs to a new VG.
Fix integrity metadata rounding.
Accept --autobackup option in pvresize.
Version 2.03.31 - 27th February 2025
====================================
Reduce 'mandoc -T lint' reported issues for man pages.
Restore support for LVM_SUPPRESS_FD_WARNINGS (2.03.24).
Fix uncache and split cache restoring original state of volume.
Extend use of lockopt skip to more scenarios.
Enhance error path resolving in polling code.
Disallow shared activation of LV with CoW snapshot.
Fix lvmlockd use in lvremove of CoW snapshot, VDO pool, and uncache.
Improve mirror split with opened temporary volumes.
Improve pvmove finish with opened temporary volumes.
Fix backup limit for devices file, handle over 10,000 files.
Ignore reported optimal_io_size not divisible by 4096.
Fix busy-loop in config reading when read returned 0.
Fix DM cache preserving logic (2.03.28).
Improve use of lvmlockd for usecases involving thin volumes and pools.
Version 2.03.30 - 14th January 2025
===================================
Lvresize reports origin vdo volume cannot be resized.
Support setting reserved_memory|stack of --config cmdline.
Fix support for disabling memory locking (2.03.27).
Do not extend an LV if FS resize unsupported and '--fs resize' used.
Prevent leftover temporary device when converting in use volume to a pool.
lvconvert detects early volume in use when converting it to a pool.
Handle NVMe with quirk changed WWID not matching WWID in devices file.
*** WHATS_NEW_DM from 1.02.203 to 1.02.212 ***
Version 1.02.212 - 15th December 2025
=====================================
Version 1.02.211 - 21st November 2025
=====================================
Dmeventd starts to use mutex per thread.
Consolidate dmsetup stats display functions using helper macros.
Refactor dmsetup _process_tree_options to use bsearch.
Version 1.02.210 - 24th October 2025
====================================
Version 1.02.209 - 09th September 2025
======================================
Version 1.02.208 - 30th July 2025
=================================
Version 1.02.207 - 27th June 2025
=================================
Escape the escape character itself on JSON report format output.
Fail dm_report_group_create if radix char from locale unsuitable for JSON_STD.
Version 1.02.206 - 05th May 2025
================================
Add support for using regex in selection criteria for string lists.
Fix string list selection when using [<item> || <item> ...].
Version 1.02.205 - 27th February 2025
=====================================
Restore missing symbol dm_tree_node_size_changed@Base (1.02.175).
Restore missing symbol dm_bitset_parse_list@@DM_1_02_138 (1.02.175).
Version 1.02.204 - 14th January 2025
====================================
Create /dev/disk/by-diskseq/<DISKSEQ> symlink for public DM devices.
- Update lvm2.spec
- change lvm2_version to 2.03.38
- change upstream_device_mapper_version and device_mapper_version to 1.02.212
- include new binary lvmpersist and related man page
- Update patches
- fate-309425_display-dm-name-for-lv-name.patch
- fate-31841-01_fsadm-add-support-to-resize-check-btrfs-filesystem.patch
- fate-31841-02_man-add-support-for-btrfs.patch
-------------------------------------------------------------------
Tue Apr 15 08:05:00 UTC 2025 - Heming Zhao <heming.zhao@suse.com>
@@ -2244,7 +2448,6 @@ Fri Jun 13 10:31:48 CEST 2014 - hare@suse.de
patch: udev-Check-for-DM_NR_VALID_PATHS.patch
-------------------------------------------------------------------
Tue May 30 09:01:08 UTC 2014 - lmb@suse.com
- Versioning for the lvm2-cmirrord dependencies
@@ -2641,13 +2844,13 @@ Fri Jun 26 11:08:39 CST 2009 - xwhu@suse.de
- bnc#510058, typo in dont_ignore_tmp_device_file.diff, which hangs
mkinitrd
Mon May 25 16:47:18 CST 2009 - xwhu@suse.de
-------------------------------------------------------------------
Mon May 25 16:47:18 CST 2009 - xwhu@suse.de
- Cleanup scripts for mkinitrd, so that udev can activate root LV.
Mon Apr 27 18:37:32 CST 2009 - xwhu@suse.de
-------------------------------------------------------------------
Mon Apr 27 18:37:32 CST 2009 - xwhu@suse.de
- Upgrade to LVM2 2.02.45
Avoid scanning empty metadata areas for VG names
@@ -3522,5 +3725,3 @@ Mon Aug 18 17:41:31 CEST 2003 - garloff@suse.de
Tue Jul 1 16:13:06 CEST 2003 - fehr@suse.de
- created initial version of a SuSE package
-------------------------------------------------------------------

View File

@@ -21,11 +21,11 @@
%define libname_event libdevmapper-event1_03
%define _udevdir %(pkg-config --variable=udevdir udev)
%define cmdlib liblvm2cmd2_03
%define lvm2_version 2.03.29
%define lvm2_version 2.03.38
# For device_mapper_version, it's package version, see bsc#1199074.
# Also note there is another dm version on below "sed -ie ... VERSION_DM".
%define upstream_device_mapper_version 1.02.203
%define device_mapper_version %{lvm2_version}_1.02.203
%define upstream_device_mapper_version 1.02.212
%define device_mapper_version %{lvm2_version}_1.02.212
%define thin_provisioning_version 0.7.0
%if 0%{?suse_version} >= 1600 && ! 0%{?is_opensuse}
%define _supportsanlock 0
@@ -583,6 +583,7 @@ LVM commands use lvmlockd to coordinate access to shared storage.
%{_sbindir}/lvdisplay
%{_sbindir}/lvextend
%{_sbindir}/lvmdiskscan
%{_sbindir}/lvmpersist
%{_sbindir}/lvmsadc
%{_sbindir}/lvmsar
%{_sbindir}/lvreduce
@@ -639,6 +640,7 @@ LVM commands use lvmlockd to coordinate access to shared storage.
/sbin/lvdisplay
/sbin/lvextend
/sbin/lvmdiskscan
/sbin/lvmpersist
/sbin/lvmsadc
/sbin/lvmsar
/sbin/lvreduce
@@ -697,6 +699,7 @@ LVM commands use lvmlockd to coordinate access to shared storage.
%{_mandir}/man8/lvmdevices.8%{?ext_man}
%{_mandir}/man8/lvm-dumpconfig.8%{?ext_man}
%{_mandir}/man8/lvmdiskscan.8%{?ext_man}
%{_mandir}/man8/lvmpersist.8%{?ext_man}
%{_mandir}/man8/lvmdump.8%{?ext_man}
%{_mandir}/man8/lvm-fullreport.8%{?ext_man}
%{_mandir}/man8/lvmsadc.8%{?ext_man}