From 83d0797f3ad8d4862e0058e081d2cbf77760929b Mon Sep 17 00:00:00 2001 From: basebuilder_pel7x64builder0 Date: Fri, 4 Oct 2019 17:53:04 +0200 Subject: [PATCH] lvm2 package update Signed-off-by: basebuilder_pel7x64builder0 --- ...86-cache-support-no_discard_passdown.patch | 71 ++++++ ...allow-mirror-LV-to-be-activated-shar.patch | 156 ++++++++++++ ...vm2-2_02_186-man-updates-to-lvmlockd.patch | 117 +++++++++ ..._02_186-mirror-fix-monitoring-change.patch | 22 ++ ...ult-allow-changes-with-duplicate-pvs.patch | 6 +- ...BLKS_BADCSUM-for-signature-detection.patch | 6 +- SOURCES/lvm2-make-generate.patch | 239 ++++++++++++++++++ .../lvm2-rhel7-add-lvm1-and-pool-back.patch | 112 ++++---- SOURCES/lvm2-rhel7.patch | 12 +- .../lvm2-set-default-preferred_names.patch | 4 +- SPECS/lvm2.spec | 116 ++++----- 11 files changed, 730 insertions(+), 131 deletions(-) create mode 100644 SOURCES/lvm2-2_02_186-cache-support-no_discard_passdown.patch create mode 100644 SOURCES/lvm2-2_02_186-lvmlockd-do-not-allow-mirror-LV-to-be-activated-shar.patch create mode 100644 SOURCES/lvm2-2_02_186-man-updates-to-lvmlockd.patch create mode 100644 SOURCES/lvm2-2_02_186-mirror-fix-monitoring-change.patch create mode 100644 SOURCES/lvm2-make-generate.patch diff --git a/SOURCES/lvm2-2_02_186-cache-support-no_discard_passdown.patch b/SOURCES/lvm2-2_02_186-cache-support-no_discard_passdown.patch new file mode 100644 index 00000000..db8fa0d2 --- /dev/null +++ b/SOURCES/lvm2-2_02_186-cache-support-no_discard_passdown.patch @@ -0,0 +1,71 @@ + WHATS_NEW | 1 + + WHATS_NEW_DM | 4 ++++ + lib/metadata/lv.c | 5 +++++ + libdm/libdevmapper.h | 1 + + libdm/libdm-targets.c | 2 ++ + 5 files changed, 13 insertions(+) + +diff --git a/WHATS_NEW b/WHATS_NEW +index 106661f..d3da403 100644 +--- a/WHATS_NEW ++++ b/WHATS_NEW +@@ -1,5 +1,6 @@ + Version 2.02.186 - + ================================ ++ Report no_discard_passdown for cache LVs with lvs -o+kernel_discards. + Prevent shared active mirror LVs with lvmlockd. + + Version 2.02.185 - 13th May 2019 +diff --git a/WHATS_NEW_DM b/WHATS_NEW_DM +index 7c74bfe..8c78724 100644 +--- a/WHATS_NEW_DM ++++ b/WHATS_NEW_DM +@@ -1,3 +1,7 @@ ++Version 1.02.160 - ++================================ ++ Parsing of cache status understand no_discard_passdown. ++ + Version 1.02.158 - 13th May 2019 + ================================ + +diff --git a/lib/metadata/lv.c b/lib/metadata/lv.c +index 2abe42d..538b292 100644 +--- a/lib/metadata/lv.c ++++ b/lib/metadata/lv.c +@@ -245,6 +245,11 @@ char *lvseg_kernel_discards_dup_with_info_and_seg_status(struct dm_pool *mem, co + return 0; + } + s = get_pool_discards_name(d); ++ } else if (lvdm->seg_status.type == SEG_STATUS_CACHE) { ++ if (lvdm->seg_status.cache->feature_flags & ++ DM_CACHE_FEATURE_NO_DISCARD_PASSDOWN) { ++ s = "nopassdown"; ++ } + } + + if (!(ret = dm_pool_strdup(mem, s))) { +diff --git a/libdm/libdevmapper.h b/libdm/libdevmapper.h +index 19032d7..e885f52 100644 +--- a/libdm/libdevmapper.h ++++ b/libdm/libdevmapper.h +@@ -1893,6 +1893,7 @@ int dm_tree_node_add_raid_target_with_params_v2(struct dm_tree_node *node, + #define DM_CACHE_FEATURE_WRITETHROUGH 0x00000002 + #define DM_CACHE_FEATURE_PASSTHROUGH 0x00000004 + #define DM_CACHE_FEATURE_METADATA2 0x00000008 /* cache v1.10 */ ++#define DM_CACHE_FEATURE_NO_DISCARD_PASSDOWN 0x00000010 + + struct dm_config_node; + /* +diff --git a/libdm/libdm-targets.c b/libdm/libdm-targets.c +index 8766789..d0a8b43 100644 +--- a/libdm/libdm-targets.c ++++ b/libdm/libdm-targets.c +@@ -296,6 +296,8 @@ int dm_get_status_cache(struct dm_pool *mem, const char *params, + s->feature_flags |= DM_CACHE_FEATURE_PASSTHROUGH; + else if (!strncmp(p, "metadata2 ", 10)) + s->feature_flags |= DM_CACHE_FEATURE_METADATA2; ++ else if (!strncmp(p, "no_discard_passdown ", 20)) ++ s->feature_flags |= DM_CACHE_FEATURE_NO_DISCARD_PASSDOWN; + else + log_error("Unknown feature in status: %s", params); + diff --git a/SOURCES/lvm2-2_02_186-lvmlockd-do-not-allow-mirror-LV-to-be-activated-shar.patch b/SOURCES/lvm2-2_02_186-lvmlockd-do-not-allow-mirror-LV-to-be-activated-shar.patch new file mode 100644 index 00000000..8ae9a97a --- /dev/null +++ b/SOURCES/lvm2-2_02_186-lvmlockd-do-not-allow-mirror-LV-to-be-activated-shar.patch @@ -0,0 +1,156 @@ + WHATS_NEW | 4 ++++ + lib/commands/toolcontext.h | 1 - + lib/locking/lvmlockd.c | 38 +------------------------------------- + lib/metadata/mirror.c | 12 ------------ + lib/mirror/mirrored.c | 9 --------- + man/lvmlockd.8_main | 2 +- + 6 files changed, 6 insertions(+), 60 deletions(-) + +diff --git a/WHATS_NEW b/WHATS_NEW +index 4e75c6a..106661f 100644 +--- a/WHATS_NEW ++++ b/WHATS_NEW +@@ -1,3 +1,7 @@ ++Version 2.02.186 - ++================================ ++ Prevent shared active mirror LVs with lvmlockd. ++ + Version 2.02.185 - 13th May 2019 + ================================ + Fix change of monitoring in clustered volumes. +diff --git a/lib/commands/toolcontext.h b/lib/commands/toolcontext.h +index da5d582..485dca9 100644 +--- a/lib/commands/toolcontext.h ++++ b/lib/commands/toolcontext.h +@@ -163,7 +163,6 @@ struct cmd_context { + unsigned lockd_vg_rescan:1; + unsigned lockd_vg_default_sh:1; + unsigned lockd_vg_enforce_sh:1; +- unsigned lockd_lv_sh:1; + unsigned vg_notify:1; + unsigned lv_notify:1; + unsigned pv_notify:1; +diff --git a/lib/locking/lvmlockd.c b/lib/locking/lvmlockd.c +index 788b62b..1160126 100644 +--- a/lib/locking/lvmlockd.c ++++ b/lib/locking/lvmlockd.c +@@ -2076,15 +2076,6 @@ int lockd_lv_name(struct cmd_context *cmd, struct volume_group *vg, + return 0; + } + +- /* +- * This is a hack for mirror LVs which need to know at a very low level +- * which lock mode the LV is being activated with so that it can pick +- * a mirror log type during activation. Do not use this for anything +- * else. +- */ +- if (mode && !strcmp(mode, "sh")) +- cmd->lockd_lv_sh = 1; +- + if (!mode) + mode = "ex"; + +@@ -2209,31 +2200,6 @@ static int _lockd_lv_thin(struct cmd_context *cmd, struct logical_volume *lv, + } + + /* +- * Only the combination of dlm + corosync + cmirrord allows +- * mirror LVs to be activated in shared mode on multiple nodes. +- */ +-static int _lockd_lv_mirror(struct cmd_context *cmd, struct logical_volume *lv, +- const char *def_mode, uint32_t flags) +-{ +- if (!strcmp(lv->vg->lock_type, "sanlock")) +- flags |= LDLV_MODE_NO_SH; +- +- else if (!strcmp(lv->vg->lock_type, "dlm") && def_mode && !strcmp(def_mode, "sh")) { +-#ifdef CMIRRORD_PIDFILE +- if (!cmirrord_is_running()) { +- log_error("cmirrord must be running to activate an LV in shared mode."); +- return 0; +- } +-#else +- flags |= LDLV_MODE_NO_SH; +-#endif +- } +- +- return lockd_lv_name(cmd, lv->vg, lv->name, &lv->lvid.id[1], +- lv->lock_args, def_mode, flags); +-} +- +-/* + * If the VG has no lock_type, then this function can return immediately. + * The LV itself may have no lock (NULL lv->lock_args), but the lock request + * may be directed to another lock, e.g. the pool LV lock in _lockd_lv_thin. +@@ -2286,14 +2252,12 @@ int lockd_lv(struct cmd_context *cmd, struct logical_volume *lv, + */ + if (lv_is_external_origin(lv) || + lv_is_thin_type(lv) || ++ lv_is_mirror_type(lv) || + lv_is_raid_type(lv) || + lv_is_cache_type(lv)) { + flags |= LDLV_MODE_NO_SH; + } + +- if (lv_is_mirror_type(lv)) +- return _lockd_lv_mirror(cmd, lv, def_mode, flags); +- + return lockd_lv_name(cmd, lv->vg, lv->name, &lv->lvid.id[1], + lv->lock_args, def_mode, flags); + } +diff --git a/lib/metadata/mirror.c b/lib/metadata/mirror.c +index b1dcaa0..cd8ce1e 100644 +--- a/lib/metadata/mirror.c ++++ b/lib/metadata/mirror.c +@@ -2104,18 +2104,6 @@ int lv_add_mirrors(struct cmd_context *cmd, struct logical_volume *lv, + } + } + +- if (lv->vg->lock_type && !strcmp(lv->vg->lock_type, "dlm") && cmd->lockd_lv_sh) { +- if (!cluster_mirror_is_available(cmd)) { +- log_error("Shared cluster mirrors are not available."); +- return 0; +- } +- +- if (log_count > 1) { +- log_error("Log type, \"mirrored\", is unavailable to cluster mirrors."); +- return 0; +- } +- } +- + /* For corelog mirror, activation code depends on + * the global mirror_in_sync status. As we are adding + * a new mirror, it should be set as 'out-of-sync' +diff --git a/lib/mirror/mirrored.c b/lib/mirror/mirrored.c +index 7c5c0a6..606bcf0 100644 +--- a/lib/mirror/mirrored.c ++++ b/lib/mirror/mirrored.c +@@ -285,15 +285,6 @@ static int _add_log(struct dm_pool *mem, struct lv_segment *seg, + if (!laopts->exclusive && vg_is_clustered(seg->lv->vg)) + clustered = 1; + +- else if (seg->lv->vg->lock_type && !strcmp(seg->lv->vg->lock_type, "dlm")) { +- /* +- * If shared lock was used due to -asy, then we set clustered +- * to use a clustered mirror log with cmirrod. +- */ +- if (seg->lv->vg->cmd->lockd_lv_sh) +- clustered = 1; +- } +- + if (seg->log_lv) { + /* If disk log, use its UUID */ + if (!(log_dlid = build_dm_uuid(mem, seg->log_lv, NULL))) { +diff --git a/man/lvmlockd.8_main b/man/lvmlockd.8_main +index cfb45b2..3f0e3ed 100644 +--- a/man/lvmlockd.8_main ++++ b/man/lvmlockd.8_main +@@ -545,7 +545,7 @@ report an error and fail. + The shared mode is intended for a multi-host/cluster application or + file system. + LV types that cannot be used concurrently +-from multiple hosts include thin, cache, raid, and snapshot. ++from multiple hosts include thin, cache, raid, mirror, and snapshot. + + .IP \fBn\fP + The command deactivates the LV. After deactivating the LV, the command diff --git a/SOURCES/lvm2-2_02_186-man-updates-to-lvmlockd.patch b/SOURCES/lvm2-2_02_186-man-updates-to-lvmlockd.patch new file mode 100644 index 00000000..868accdc --- /dev/null +++ b/SOURCES/lvm2-2_02_186-man-updates-to-lvmlockd.patch @@ -0,0 +1,117 @@ + man/lvmlockd.8_main | 61 +++++++++++++---------------------------------------- + 1 file changed, 15 insertions(+), 46 deletions(-) + +diff --git a/man/lvmlockd.8_main b/man/lvmlockd.8_main +index 3f0e3ed..b917d93 100644 +--- a/man/lvmlockd.8_main ++++ b/man/lvmlockd.8_main +@@ -76,9 +76,6 @@ For default settings, see lvmlockd -h. + .I seconds + Override the default sanlock I/O timeout. + +-.B --adopt | -A 0|1 +- Adopt locks from a previous instance of lvmlockd. +- + + .SH USAGE + +@@ -261,6 +258,16 @@ does for foreign VGs. + + .SS creating the first sanlock VG + ++When use_lvmlockd is first enabled in lvm.conf, and before the first ++sanlock VG is created, no global lock will exist. In this initial state, ++LVM commands try and fail to acquire the global lock, producing a warning, ++and some commands are disallowed. Once the first sanlock VG is created, ++the global lock will be available, and LVM will be fully operational. ++ ++When a new sanlock VG is created, its lockspace is automatically started on ++the host that creates it. Other hosts need to run 'vgchange --lock-start' ++to start the new VG before they can use it. ++ + Creating the first sanlock VG is not protected by locking, so it requires + special attention. This is because sanlock locks exist on storage within + the VG, so they are not available until after the VG is created. The +@@ -288,19 +295,7 @@ See below for more information about managing the sanlock global lock. + + .SS using shared VGs + +-There are some special considerations when using shared VGs. +- +-When use_lvmlockd is first enabled in lvm.conf, and before the first +-shared VG is created, no global lock will exist. In this initial state, +-LVM commands try and fail to acquire the global lock, producing a warning, +-and some commands are disallowed. Once the first shared VG is created, +-the global lock will be available, and LVM will be fully operational. +- +-When a new shared VG is created, its lockspace is automatically started on +-the host that creates it. Other hosts need to run 'vgchange --lock-start' +-to start the new VG before they can use it. +- +-From the 'vgs' command, shared VGs are indicated by "s" (for shared) in ++In the 'vgs' command, shared VGs are indicated by "s" (for shared) in + the sixth attr field, and by "shared" in the "--options shared" report + field. The specific lock type and lock args for a shared VG can be + displayed with 'vgs -o+locktype,lockargs'. +@@ -379,31 +374,6 @@ activation { + .fi + + +-.SS automatic starting and automatic activation +- +-When system-level scripts/programs automatically start VGs, they should +-use the "auto" option. This option indicates that the command is being +-run automatically by the system: +- +-vgchange --lock-start --lock-opt auto [ ...] +- +-The "auto" option causes the command to follow the lvm.conf +-activation/auto_lock_start_list. If auto_lock_start_list is undefined, +-all VGs are started, just as if the auto option was not used. +- +-When auto_lock_start_list is defined, it lists the shared VGs that should +-be started by the auto command. VG names that do not match an item in the +-list will be ignored by the auto start command. +- +-(The lock_start_list is also still used to filter VG names from all start +-commands, i.e. with or without the auto option. When the lock_start_list +-is defined, only VGs matching a list item can be started with vgchange.) +- +-The auto_lock_start_list allows a user to select certain shared VGs that +-should be automatically started by the system (or indirectly, those that +-should not). +- +- + .SS internal command locking + + To optimize the use of LVM with lvmlockd, be aware of the three kinds of +@@ -411,8 +381,8 @@ locks and when they are used: + + .I Global lock + +-The global lock s associated with global information, which is information +-not isolated to a single VG. This includes: ++The global lock is associated with global information, which is ++information not isolated to a single VG. This includes: + + \[bu] + The global VG namespace. +@@ -456,7 +426,7 @@ held only while an LVM command is running.) + + .I lock retries + +-If a request for a Global or VG lock fails due to a lock conflict with ++If a request for a global or VG lock fails due to a lock conflict with + another host, lvmlockd automatically retries for a short time before + returning a failure to the LVM command. If those retries are + insufficient, the LVM command will retry the entire lock request a number +@@ -579,8 +549,7 @@ necessary locks. + .B lvmlockd failure + + If lvmlockd fails or is killed while holding locks, the locks are orphaned +-in the lock manager. lvmlockd can be restarted with an option to adopt +-locks in the lock manager that had been held by the previous instance. ++in the lock manager. + + .B dlm/corosync failure + diff --git a/SOURCES/lvm2-2_02_186-mirror-fix-monitoring-change.patch b/SOURCES/lvm2-2_02_186-mirror-fix-monitoring-change.patch new file mode 100644 index 00000000..9f6388dc --- /dev/null +++ b/SOURCES/lvm2-2_02_186-mirror-fix-monitoring-change.patch @@ -0,0 +1,22 @@ + lib/activate/activate.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/lib/activate/activate.c b/lib/activate/activate.c +index 6823e25..b4e3a65 100644 +--- a/lib/activate/activate.c ++++ b/lib/activate/activate.c +@@ -2061,12 +2061,12 @@ int monitor_dev_for_events(struct cmd_context *cmd, const struct logical_volume + } else + continue; + +- if (!locking_is_clustered() && !vg_write_lock_held() && lv_is_mirror(lv)) { ++ if (!cmd->is_clvmd && !vg_write_lock_held() && lv_is_mirror(lv)) { + /* + * Commands vgchange and lvchange do use read-only lock when changing + * monitoring (--monitor y|n). All other use cases hold 'write-lock' + * so they skip this dm mirror table refreshing step. +- * Shortcut can't be applied with clustered locking. ++ * Shortcut is also not applied with clvmd. + */ + if (!_lv_activate_lv(lv, &mirr_laopts)) { + stack; diff --git a/SOURCES/lvm2-default-allow-changes-with-duplicate-pvs.patch b/SOURCES/lvm2-default-allow-changes-with-duplicate-pvs.patch index 0bf06182..72b7d211 100644 --- a/SOURCES/lvm2-default-allow-changes-with-duplicate-pvs.patch +++ b/SOURCES/lvm2-default-allow-changes-with-duplicate-pvs.patch @@ -3,10 +3,10 @@ 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/conf/example.conf.in b/conf/example.conf.in -index 4894d04..48afbd1 100644 +index 7ccf928..4418f56 100644 --- a/conf/example.conf.in +++ b/conf/example.conf.in -@@ -311,7 +311,7 @@ devices { +@@ -325,7 +325,7 @@ devices { # or activating LVs in it while a PV appears on multiple devices. # Enabling this setting allows the VG to be used as usual even with # uncertain devices. @@ -16,7 +16,7 @@ index 4894d04..48afbd1 100644 # Configuration section allocation. diff --git a/lib/config/defaults.h b/lib/config/defaults.h -index d9e19d9..894b979 100644 +index 6d3c37c..0d55928 100644 --- a/lib/config/defaults.h +++ b/lib/config/defaults.h @@ -45,7 +45,7 @@ diff --git a/SOURCES/lvm2-drop-unavailable-libblkid-2_24-BLKID_SUBLKS_BADCSUM-for-signature-detection.patch b/SOURCES/lvm2-drop-unavailable-libblkid-2_24-BLKID_SUBLKS_BADCSUM-for-signature-detection.patch index 0c7a0b06..1a955a78 100644 --- a/SOURCES/lvm2-drop-unavailable-libblkid-2_24-BLKID_SUBLKS_BADCSUM-for-signature-detection.patch +++ b/SOURCES/lvm2-drop-unavailable-libblkid-2_24-BLKID_SUBLKS_BADCSUM-for-signature-detection.patch @@ -4,7 +4,7 @@ 3 files changed, 13 insertions(+), 14 deletions(-) diff --git a/configure b/configure -index 7d945df..ef24b31 100755 +index 4d2fb2f..f357462 100755 --- a/configure +++ b/configure @@ -12111,12 +12111,12 @@ if test -n "$BLKID_CFLAGS"; then @@ -70,7 +70,7 @@ index 7d945df..ef24b31 100755 else BLKID_CFLAGS=$pkg_cv_BLKID_CFLAGS diff --git a/configure.ac b/configure.ac -index e427708..935ea08 100644 +index 379d37f..e6bb905 100644 --- a/configure.ac +++ b/configure.ac @@ -1235,7 +1235,7 @@ AC_ARG_ENABLE(blkid_wiping, @@ -92,7 +92,7 @@ index e427708..935ea08 100644 fi AC_MSG_CHECKING([whether to enable libblkid detection of signatures when wiping]) diff --git a/lib/device/dev-type.c b/lib/device/dev-type.c -index af4b407..eda7982 100644 +index ce4a05b..9bdee32 100644 --- a/lib/device/dev-type.c +++ b/lib/device/dev-type.c @@ -712,8 +712,7 @@ static int _wipe_known_signatures_with_blkid(struct device *dev, const char *nam diff --git a/SOURCES/lvm2-make-generate.patch b/SOURCES/lvm2-make-generate.patch new file mode 100644 index 00000000..ac74f507 --- /dev/null +++ b/SOURCES/lvm2-make-generate.patch @@ -0,0 +1,239 @@ + conf/example.conf.in | 20 ++++++++++++++++---- + man/pvcreate.8_pregen | 7 ++++--- + man/vgcfgrestore.8_pregen | 9 +++++---- + man/vgconvert.8_pregen | 14 +++++++++----- + man/vgcreate.8_pregen | 7 ++++--- + man/vgextend.8_pregen | 7 ++++--- + man/vgsplit.8_pregen | 7 ++++--- + 7 files changed, 46 insertions(+), 25 deletions(-) + +diff --git a/conf/example.conf.in b/conf/example.conf.in +index 4418f56..6f7b161 100644 +--- a/conf/example.conf.in ++++ b/conf/example.conf.in +@@ -716,17 +716,29 @@ global { + activation = 1 + + # Configuration option global/fallback_to_lvm1. +- # This setting is no longer used. ++ # Try running LVM1 tools if LVM cannot communicate with DM. ++ # This option only applies to 2.4 kernels and is provided to help ++ # switch between device-mapper kernels and LVM1 kernels. The LVM1 ++ # tools need to be installed with .lvm1 suffices, e.g. vgscan.lvm1. ++ # They will stop working once the lvm2 on-disk metadata format is used. + # This configuration option has an automatic default value. +- # fallback_to_lvm1 = 0 ++ # fallback_to_lvm1 = @DEFAULT_FALLBACK_TO_LVM1@ + + # Configuration option global/format. +- # This setting is no longer used. ++ # The default metadata format that commands should use. ++ # The -M 1|2 option overrides this setting. ++ # ++ # Accepted values: ++ # lvm1 ++ # lvm2 ++ # + # This configuration option has an automatic default value. + # format = "lvm2" + + # Configuration option global/format_libraries. +- # This setting is no longer used. ++ # Shared libraries that process different metadata formats. ++ # If support for LVM1 metadata was compiled as a shared library use ++ # format_libraries = "liblvm2format1.so" + # This configuration option does not have a default value defined. + + # Configuration option global/segment_libraries. +diff --git a/man/pvcreate.8_pregen b/man/pvcreate.8_pregen +index c4b03da..abceb82 100644 +--- a/man/pvcreate.8_pregen ++++ b/man/pvcreate.8_pregen +@@ -38,7 +38,7 @@ normally prevent it, e.g. if the PV is already in a VG. + .ad b + .br + .ad l +-[ \fB-M\fP|\fB--metadatatype\fP \fBlvm2\fP ] ++[ \fB-M\fP|\fB--metadatatype\fP \fBlvm2\fP|\fBlvm1\fP ] + .ad b + .br + .ad l +@@ -266,11 +266,12 @@ The size may be rounded. + .ad b + .HP + .ad l +-\fB-M\fP|\fB--metadatatype\fP \fBlvm2\fP ++\fB-M\fP|\fB--metadatatype\fP \fBlvm2\fP|\fBlvm1\fP + .br + Specifies the type of on-disk metadata to use. + \fBlvm2\fP (or just \fB2\fP) is the current, standard format. +-\fBlvm1\fP (or just \fB1\fP) is no longer used. ++\fBlvm1\fP (or just \fB1\fP) is a historical format that ++can be used for accessing old data. + .ad b + .HP + .ad l +diff --git a/man/vgcfgrestore.8_pregen b/man/vgcfgrestore.8_pregen +index cffd44b..e028103 100644 +--- a/man/vgcfgrestore.8_pregen ++++ b/man/vgcfgrestore.8_pregen +@@ -51,7 +51,7 @@ vgcfgrestore - Restore volume group configuration + .ad b + .br + .ad l +- \fB-M\fP|\fB--metadatatype\fP \fBlvm2\fP ++ \fB-M\fP|\fB--metadatatype\fP \fBlvm2\fP|\fBlvm1\fP + .ad b + .br + .ad l +@@ -141,7 +141,7 @@ Common options for command: + . + .RS 4 + .ad l +-[ \fB-M\fP|\fB--metadatatype\fP \fBlvm2\fP ] ++[ \fB-M\fP|\fB--metadatatype\fP \fBlvm2\fP|\fBlvm1\fP ] + .ad b + .br + .ad l +@@ -280,11 +280,12 @@ Display long help text. + .ad b + .HP + .ad l +-\fB-M\fP|\fB--metadatatype\fP \fBlvm2\fP ++\fB-M\fP|\fB--metadatatype\fP \fBlvm2\fP|\fBlvm1\fP + .br + Specifies the type of on-disk metadata to use. + \fBlvm2\fP (or just \fB2\fP) is the current, standard format. +-\fBlvm1\fP (or just \fB1\fP) is no longer used. ++\fBlvm1\fP (or just \fB1\fP) is a historical format that ++can be used for accessing old data. + .ad b + .HP + .ad l +diff --git a/man/vgconvert.8_pregen b/man/vgconvert.8_pregen +index 5e7f8a9..6228087 100644 +--- a/man/vgconvert.8_pregen ++++ b/man/vgconvert.8_pregen +@@ -8,9 +8,12 @@ vgconvert - Change volume group metadata format + [ \fIoption_args\fP ] + .br + .SH DESCRIPTION +-vgconvert converts VG metadata from one format to another. This command +-is no longer used because this version of lvm no longer supports the LVM1 ++vgconvert converts VG metadata from one format to another. The new ++metadata format must be able to fit into the space provided by the old + format. ++ ++Because the LVM1 format should no longer be used, this command is no ++longer needed in general. + .SH USAGE + \fBvgconvert\fP \fIVG\fP ... + .br +@@ -20,7 +23,7 @@ format. + .ad b + .br + .ad l +-[ \fB-M\fP|\fB--metadatatype\fP \fBlvm2\fP ] ++[ \fB-M\fP|\fB--metadatatype\fP \fBlvm2\fP|\fBlvm1\fP ] + .ad b + .br + .ad l +@@ -191,11 +194,12 @@ The size may be rounded. + .ad b + .HP + .ad l +-\fB-M\fP|\fB--metadatatype\fP \fBlvm2\fP ++\fB-M\fP|\fB--metadatatype\fP \fBlvm2\fP|\fBlvm1\fP + .br + Specifies the type of on-disk metadata to use. + \fBlvm2\fP (or just \fB2\fP) is the current, standard format. +-\fBlvm1\fP (or just \fB1\fP) is no longer used. ++\fBlvm1\fP (or just \fB1\fP) is a historical format that ++can be used for accessing old data. + .ad b + .HP + .ad l +diff --git a/man/vgcreate.8_pregen b/man/vgcreate.8_pregen +index 09bf126..ddad391 100644 +--- a/man/vgcreate.8_pregen ++++ b/man/vgcreate.8_pregen +@@ -33,7 +33,7 @@ devices are also available with vgcreate. + .ad b + .br + .ad l +-[ \fB-M\fP|\fB--metadatatype\fP \fBlvm2\fP ] ++[ \fB-M\fP|\fB--metadatatype\fP \fBlvm2\fP|\fBlvm1\fP ] + .ad b + .br + .ad l +@@ -324,11 +324,12 @@ The size may be rounded. + .ad b + .HP + .ad l +-\fB-M\fP|\fB--metadatatype\fP \fBlvm2\fP ++\fB-M\fP|\fB--metadatatype\fP \fBlvm2\fP|\fBlvm1\fP + .br + Specifies the type of on-disk metadata to use. + \fBlvm2\fP (or just \fB2\fP) is the current, standard format. +-\fBlvm1\fP (or just \fB1\fP) is no longer used. ++\fBlvm1\fP (or just \fB1\fP) is a historical format that ++can be used for accessing old data. + .ad b + .HP + .ad l +diff --git a/man/vgextend.8_pregen b/man/vgextend.8_pregen +index a6a30e9..ee805a8 100644 +--- a/man/vgextend.8_pregen ++++ b/man/vgextend.8_pregen +@@ -36,7 +36,7 @@ will initialize them. In this case pvcreate options can be used, e.g. + .ad b + .br + .ad l +-[ \fB-M\fP|\fB--metadatatype\fP \fBlvm2\fP ] ++[ \fB-M\fP|\fB--metadatatype\fP \fBlvm2\fP|\fBlvm1\fP ] + .ad b + .br + .ad l +@@ -237,11 +237,12 @@ The size may be rounded. + .ad b + .HP + .ad l +-\fB-M\fP|\fB--metadatatype\fP \fBlvm2\fP ++\fB-M\fP|\fB--metadatatype\fP \fBlvm2\fP|\fBlvm1\fP + .br + Specifies the type of on-disk metadata to use. + \fBlvm2\fP (or just \fB2\fP) is the current, standard format. +-\fBlvm1\fP (or just \fB1\fP) is no longer used. ++\fBlvm1\fP (or just \fB1\fP) is a historical format that ++can be used for accessing old data. + .ad b + .HP + .ad l +diff --git a/man/vgsplit.8_pregen b/man/vgsplit.8_pregen +index 6c3e6ec..210c266 100644 +--- a/man/vgsplit.8_pregen ++++ b/man/vgsplit.8_pregen +@@ -62,7 +62,7 @@ Common options for command: + .ad b + .br + .ad l +-[ \fB-M\fP|\fB--metadatatype\fP \fBlvm2\fP ] ++[ \fB-M\fP|\fB--metadatatype\fP \fBlvm2\fP|\fBlvm1\fP ] + .ad b + .br + .ad l +@@ -230,11 +230,12 @@ and --vgmetadatacopies for improving performance. + .ad b + .HP + .ad l +-\fB-M\fP|\fB--metadatatype\fP \fBlvm2\fP ++\fB-M\fP|\fB--metadatatype\fP \fBlvm2\fP|\fBlvm1\fP + .br + Specifies the type of on-disk metadata to use. + \fBlvm2\fP (or just \fB2\fP) is the current, standard format. +-\fBlvm1\fP (or just \fB1\fP) is no longer used. ++\fBlvm1\fP (or just \fB1\fP) is a historical format that ++can be used for accessing old data. + .ad b + .HP + .ad l diff --git a/SOURCES/lvm2-rhel7-add-lvm1-and-pool-back.patch b/SOURCES/lvm2-rhel7-add-lvm1-and-pool-back.patch index 675ed3dd..093bc604 100644 --- a/SOURCES/lvm2-rhel7-add-lvm1-and-pool-back.patch +++ b/SOURCES/lvm2-rhel7-add-lvm1-and-pool-back.patch @@ -91,7 +91,7 @@ create mode 100644 test/shell/snapshot-lvm1.sh diff --git a/configure b/configure -index ef24b31..10b49c6 100755 +index f357462..2585e58 100755 --- a/configure +++ b/configure @@ -675,6 +675,7 @@ PYTHON_BINDINGS @@ -237,12 +237,12 @@ index ef24b31..10b49c6 100755 + + ################################################################################ --ac_config_files="$ac_config_files Makefile make.tmpl daemons/Makefile daemons/clvmd/Makefile daemons/cmirrord/Makefile daemons/dmeventd/Makefile daemons/dmeventd/libdevmapper-event.pc daemons/dmeventd/plugins/Makefile daemons/dmeventd/plugins/lvm2/Makefile daemons/dmeventd/plugins/raid/Makefile daemons/dmeventd/plugins/mirror/Makefile daemons/dmeventd/plugins/snapshot/Makefile daemons/dmeventd/plugins/thin/Makefile daemons/dmfilemapd/Makefile daemons/lvmdbusd/Makefile daemons/lvmdbusd/lvmdbusd daemons/lvmdbusd/lvmdb.py daemons/lvmdbusd/lvm_shell_proxy.py daemons/lvmdbusd/path.py daemons/lvmetad/Makefile daemons/lvmpolld/Makefile daemons/lvmlockd/Makefile device_mapper/Makefile conf/Makefile conf/example.conf conf/lvmlocal.conf conf/command_profile_template.profile conf/metadata_profile_template.profile include/.symlinks include/Makefile lib/Makefile lib/locking/Makefile include/lvm-version.h libdaemon/Makefile libdaemon/client/Makefile libdaemon/server/Makefile libdm/Makefile libdm/libdevmapper.pc liblvm/Makefile liblvm/liblvm2app.pc man/Makefile po/Makefile python/Makefile python/setup.py scripts/blkdeactivate.sh scripts/blk_availability_init_red_hat scripts/blk_availability_systemd_red_hat.service scripts/clvmd_init_red_hat scripts/cmirrord_init_red_hat scripts/com.redhat.lvmdbus1.service scripts/dm_event_systemd_red_hat.service scripts/dm_event_systemd_red_hat.socket scripts/lvm2_cluster_activation_red_hat.sh scripts/lvm2_cluster_activation_systemd_red_hat.service scripts/lvm2_clvmd_systemd_red_hat.service scripts/lvm2_cmirrord_systemd_red_hat.service scripts/lvm2_lvmdbusd_systemd_red_hat.service scripts/lvm2_lvmetad_init_red_hat scripts/lvm2_lvmetad_systemd_red_hat.service scripts/lvm2_lvmetad_systemd_red_hat.socket scripts/lvm2_lvmpolld_init_red_hat scripts/lvm2_lvmpolld_systemd_red_hat.service scripts/lvm2_lvmpolld_systemd_red_hat.socket scripts/lvm2_lvmlockd_systemd_red_hat.service scripts/lvm2_lvmlocking_systemd_red_hat.service scripts/lvm2_monitoring_init_red_hat scripts/lvm2_monitoring_systemd_red_hat.service scripts/lvm2_pvscan_systemd_red_hat@.service scripts/lvm2_tmpfiles_red_hat.conf scripts/lvmdump.sh scripts/Makefile test/Makefile test/api/Makefile test/api/python_lvm_unit.py test/unit/Makefile tools/Makefile udev/Makefile" -+ac_config_files="$ac_config_files Makefile make.tmpl daemons/Makefile daemons/clvmd/Makefile daemons/cmirrord/Makefile daemons/dmeventd/Makefile daemons/dmeventd/libdevmapper-event.pc daemons/dmeventd/plugins/Makefile daemons/dmeventd/plugins/lvm2/Makefile daemons/dmeventd/plugins/raid/Makefile daemons/dmeventd/plugins/mirror/Makefile daemons/dmeventd/plugins/snapshot/Makefile daemons/dmeventd/plugins/thin/Makefile daemons/dmfilemapd/Makefile daemons/lvmdbusd/Makefile daemons/lvmdbusd/lvmdbusd daemons/lvmdbusd/lvmdb.py daemons/lvmdbusd/lvm_shell_proxy.py daemons/lvmdbusd/path.py daemons/lvmetad/Makefile daemons/lvmpolld/Makefile daemons/lvmlockd/Makefile device_mapper/Makefile conf/Makefile conf/example.conf conf/lvmlocal.conf conf/command_profile_template.profile conf/metadata_profile_template.profile include/.symlinks include/Makefile lib/Makefile lib/format1/Makefile lib/format_pool/Makefile lib/locking/Makefile include/lvm-version.h libdaemon/Makefile libdaemon/client/Makefile libdaemon/server/Makefile libdm/Makefile libdm/libdevmapper.pc liblvm/Makefile liblvm/liblvm2app.pc man/Makefile po/Makefile python/Makefile python/setup.py scripts/blkdeactivate.sh scripts/blk_availability_init_red_hat scripts/blk_availability_systemd_red_hat.service scripts/clvmd_init_red_hat scripts/cmirrord_init_red_hat scripts/com.redhat.lvmdbus1.service scripts/dm_event_systemd_red_hat.service scripts/dm_event_systemd_red_hat.socket scripts/lvm2_cluster_activation_red_hat.sh scripts/lvm2_cluster_activation_systemd_red_hat.service scripts/lvm2_clvmd_systemd_red_hat.service scripts/lvm2_cmirrord_systemd_red_hat.service scripts/lvm2_lvmdbusd_systemd_red_hat.service scripts/lvm2_lvmetad_init_red_hat scripts/lvm2_lvmetad_systemd_red_hat.service scripts/lvm2_lvmetad_systemd_red_hat.socket scripts/lvm2_lvmpolld_init_red_hat scripts/lvm2_lvmpolld_systemd_red_hat.service scripts/lvm2_lvmpolld_systemd_red_hat.socket scripts/lvm2_lvmlockd_systemd_red_hat.service scripts/lvm2_lvmlocking_systemd_red_hat.service scripts/lvm2_monitoring_init_red_hat scripts/lvm2_monitoring_systemd_red_hat.service scripts/lvm2_pvscan_systemd_red_hat@.service scripts/lvm2_tmpfiles_red_hat.conf scripts/lvmdump.sh scripts/Makefile test/Makefile test/api/Makefile test/api/python_lvm_unit.py test/unit/Makefile tools/Makefile udev/Makefile" +-ac_config_files="$ac_config_files Makefile make.tmpl daemons/Makefile daemons/clvmd/Makefile daemons/cmirrord/Makefile daemons/dmeventd/Makefile daemons/dmeventd/libdevmapper-event.pc daemons/dmeventd/plugins/Makefile daemons/dmeventd/plugins/lvm2/Makefile daemons/dmeventd/plugins/raid/Makefile daemons/dmeventd/plugins/mirror/Makefile daemons/dmeventd/plugins/snapshot/Makefile daemons/dmeventd/plugins/thin/Makefile daemons/dmeventd/plugins/vdo/Makefile daemons/dmfilemapd/Makefile daemons/lvmdbusd/Makefile daemons/lvmdbusd/lvmdbusd daemons/lvmdbusd/lvmdb.py daemons/lvmdbusd/lvm_shell_proxy.py daemons/lvmdbusd/path.py daemons/lvmetad/Makefile daemons/lvmpolld/Makefile daemons/lvmlockd/Makefile device_mapper/Makefile conf/Makefile conf/example.conf conf/lvmlocal.conf conf/command_profile_template.profile conf/metadata_profile_template.profile include/.symlinks include/Makefile lib/Makefile lib/locking/Makefile include/lvm-version.h libdaemon/Makefile libdaemon/client/Makefile libdaemon/server/Makefile libdm/Makefile libdm/libdevmapper.pc liblvm/Makefile liblvm/liblvm2app.pc man/Makefile po/Makefile python/Makefile python/setup.py scripts/blkdeactivate.sh scripts/blk_availability_init_red_hat scripts/blk_availability_systemd_red_hat.service scripts/clvmd_init_red_hat scripts/cmirrord_init_red_hat scripts/com.redhat.lvmdbus1.service scripts/dm_event_systemd_red_hat.service scripts/dm_event_systemd_red_hat.socket scripts/lvm2_cluster_activation_red_hat.sh scripts/lvm2_cluster_activation_systemd_red_hat.service scripts/lvm2_clvmd_systemd_red_hat.service scripts/lvm2_cmirrord_systemd_red_hat.service scripts/lvm2_lvmdbusd_systemd_red_hat.service scripts/lvm2_lvmetad_init_red_hat scripts/lvm2_lvmetad_systemd_red_hat.service scripts/lvm2_lvmetad_systemd_red_hat.socket scripts/lvm2_lvmpolld_init_red_hat scripts/lvm2_lvmpolld_systemd_red_hat.service scripts/lvm2_lvmpolld_systemd_red_hat.socket scripts/lvm2_lvmlockd_systemd_red_hat.service scripts/lvm2_lvmlocking_systemd_red_hat.service scripts/lvm2_monitoring_init_red_hat scripts/lvm2_monitoring_systemd_red_hat.service scripts/lvm2_pvscan_systemd_red_hat@.service scripts/lvm2_tmpfiles_red_hat.conf scripts/lvmdump.sh scripts/Makefile test/Makefile test/api/Makefile test/api/python_lvm_unit.py test/unit/Makefile tools/Makefile udev/Makefile" ++ac_config_files="$ac_config_files Makefile make.tmpl daemons/Makefile daemons/clvmd/Makefile daemons/cmirrord/Makefile daemons/dmeventd/Makefile daemons/dmeventd/libdevmapper-event.pc daemons/dmeventd/plugins/Makefile daemons/dmeventd/plugins/lvm2/Makefile daemons/dmeventd/plugins/raid/Makefile daemons/dmeventd/plugins/mirror/Makefile daemons/dmeventd/plugins/snapshot/Makefile daemons/dmeventd/plugins/thin/Makefile daemons/dmeventd/plugins/vdo/Makefile daemons/dmfilemapd/Makefile daemons/lvmdbusd/Makefile daemons/lvmdbusd/lvmdbusd daemons/lvmdbusd/lvmdb.py daemons/lvmdbusd/lvm_shell_proxy.py daemons/lvmdbusd/path.py daemons/lvmetad/Makefile daemons/lvmpolld/Makefile daemons/lvmlockd/Makefile device_mapper/Makefile conf/Makefile conf/example.conf conf/lvmlocal.conf conf/command_profile_template.profile conf/metadata_profile_template.profile include/.symlinks include/Makefile lib/Makefile lib/format1/Makefile lib/format_pool/Makefile lib/locking/Makefile include/lvm-version.h libdaemon/Makefile libdaemon/client/Makefile libdaemon/server/Makefile libdm/Makefile libdm/libdevmapper.pc liblvm/Makefile liblvm/liblvm2app.pc man/Makefile po/Makefile python/Makefile python/setup.py scripts/blkdeactivate.sh scripts/blk_availability_init_red_hat scripts/blk_availability_systemd_red_hat.service scripts/clvmd_init_red_hat scripts/cmirrord_init_red_hat scripts/com.redhat.lvmdbus1.service scripts/dm_event_systemd_red_hat.service scripts/dm_event_systemd_red_hat.socket scripts/lvm2_cluster_activation_red_hat.sh scripts/lvm2_cluster_activation_systemd_red_hat.service scripts/lvm2_clvmd_systemd_red_hat.service scripts/lvm2_cmirrord_systemd_red_hat.service scripts/lvm2_lvmdbusd_systemd_red_hat.service scripts/lvm2_lvmetad_init_red_hat scripts/lvm2_lvmetad_systemd_red_hat.service scripts/lvm2_lvmetad_systemd_red_hat.socket scripts/lvm2_lvmpolld_init_red_hat scripts/lvm2_lvmpolld_systemd_red_hat.service scripts/lvm2_lvmpolld_systemd_red_hat.socket scripts/lvm2_lvmlockd_systemd_red_hat.service scripts/lvm2_lvmlocking_systemd_red_hat.service scripts/lvm2_monitoring_init_red_hat scripts/lvm2_monitoring_systemd_red_hat.service scripts/lvm2_pvscan_systemd_red_hat@.service scripts/lvm2_tmpfiles_red_hat.conf scripts/lvmdump.sh scripts/Makefile test/Makefile test/api/Makefile test/api/python_lvm_unit.py test/unit/Makefile tools/Makefile udev/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure -@@ -16285,6 +16374,8 @@ do +@@ -16286,6 +16375,8 @@ do "include/.symlinks") CONFIG_FILES="$CONFIG_FILES include/.symlinks" ;; "include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;; "lib/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;; @@ -252,7 +252,7 @@ index ef24b31..10b49c6 100755 "include/lvm-version.h") CONFIG_FILES="$CONFIG_FILES include/lvm-version.h" ;; "libdaemon/Makefile") CONFIG_FILES="$CONFIG_FILES libdaemon/Makefile" ;; diff --git a/configure.ac b/configure.ac -index 935ea08..9fa0c76 100644 +index e6bb905..ad356b8 100644 --- a/configure.ac +++ b/configure.ac @@ -283,6 +283,58 @@ AC_MSG_RESULT($MANGLING) @@ -339,7 +339,7 @@ index 935ea08..9fa0c76 100644 AC_SUBST(M_LIBS) AC_SUBST(PTHREAD_LIBS) AC_SUBST(PYTHON2) -@@ -2117,6 +2173,8 @@ conf/metadata_profile_template.profile +@@ -2118,6 +2174,8 @@ conf/metadata_profile_template.profile include/.symlinks include/Makefile lib/Makefile @@ -406,7 +406,7 @@ index be2623a..a2adfe6 100644 #define LVMETAD_DISABLE_REASON_VGRESTORE "VGRESTORE" #define LVMETAD_DISABLE_REASON_REPAIR "REPAIR" diff --git a/daemons/lvmetad/lvmetad-core.c b/daemons/lvmetad/lvmetad-core.c -index 72473d7..f4f5f42 100644 +index 9ae359b..3e379fe 100644 --- a/daemons/lvmetad/lvmetad-core.c +++ b/daemons/lvmetad/lvmetad-core.c @@ -200,12 +200,12 @@ struct vg_info { @@ -446,7 +446,7 @@ index 72473d7..f4f5f42 100644 (s->flags & GLFL_DISABLE_REASON_VGRESTORE) ? LVMETAD_DISABLE_REASON_VGRESTORE "," : ""); } diff --git a/include/configure.h.in b/include/configure.h.in -index 15fd150..605f1e1 100644 +index 812cacc..bbeb565 100644 --- a/include/configure.h.in +++ b/include/configure.h.in @@ -72,6 +72,10 @@ @@ -460,7 +460,7 @@ index 15fd150..605f1e1 100644 /* Name of default locking directory. */ #undef DEFAULT_LOCK_DIR -@@ -616,6 +620,13 @@ +@@ -619,6 +623,13 @@ slash. */ #undef LSTAT_FOLLOWS_SLASHED_SYMLINK @@ -474,7 +474,7 @@ index 15fd150..605f1e1 100644 /* Path to lvmetad pidfile. */ #undef LVMETAD_PIDFILE -@@ -678,6 +689,9 @@ +@@ -681,6 +692,9 @@ /* Define to the version of this package. */ #undef PACKAGE_VERSION @@ -539,7 +539,7 @@ index 1d42235..241cf09 100644 locking endif diff --git a/lib/activate/activate.c b/lib/activate/activate.c -index 56ec732..18f4b84 100644 +index dc9bc9e..6823e25 100644 --- a/lib/activate/activate.c +++ b/lib/activate/activate.c @@ -37,6 +37,19 @@ @@ -563,7 +563,7 @@ index 56ec732..18f4b84 100644 struct dm_list *modules) { diff --git a/lib/activate/activate.h b/lib/activate/activate.h -index d2c6db7..2fc74ce 100644 +index 524d2bf..43d26d1 100644 --- a/lib/activate/activate.h +++ b/lib/activate/activate.h @@ -91,6 +91,7 @@ int activation(void); @@ -575,7 +575,7 @@ index d2c6db7..2fc74ce 100644 int module_present(struct cmd_context *cmd, const char *target_name); int target_present_version(struct cmd_context *cmd, const char *target_name, diff --git a/lib/cache/lvmcache.c b/lib/cache/lvmcache.c -index 3e681a2..2fba3ff 100644 +index ad40d4c..62f1d3c 100644 --- a/lib/cache/lvmcache.c +++ b/lib/cache/lvmcache.c @@ -22,6 +22,8 @@ @@ -597,10 +597,10 @@ index 3e681a2..2fba3ff 100644 _drop_metadata(vgname, drop_precommitted); } diff --git a/lib/cache/lvmetad.c b/lib/cache/lvmetad.c -index a1ab41a..2a2d7ea 100644 +index 86a880a..ec1a749 100644 --- a/lib/cache/lvmetad.c +++ b/lib/cache/lvmetad.c -@@ -37,6 +37,8 @@ static const char *_lvmetad_socket = NULL; +@@ -38,6 +38,8 @@ static const char *_lvmetad_socket = NULL; static struct cmd_context *_lvmetad_cmd = NULL; static int64_t _lvmetad_update_timeout; @@ -609,7 +609,7 @@ index a1ab41a..2a2d7ea 100644 static struct volume_group *_lvmetad_pvscan_vg(struct cmd_context *cmd, struct volume_group *vg, const char *vgid, struct format_type *fmt); static uint64_t _monotonic_seconds(void) -@@ -2277,6 +2279,18 @@ int lvmetad_pvscan_single(struct cmd_context *cmd, struct device *dev, +@@ -2287,6 +2289,18 @@ int lvmetad_pvscan_single(struct cmd_context *cmd, struct device *dev, if (!baton.fid) goto_bad; @@ -628,7 +628,7 @@ index a1ab41a..2a2d7ea 100644 lvmcache_foreach_mda(info, _lvmetad_pvscan_single, &baton); if (!baton.vg) -@@ -2440,9 +2454,11 @@ int lvmetad_pvscan_all_devs(struct cmd_context *cmd, int do_wait) +@@ -2451,9 +2465,11 @@ int lvmetad_pvscan_all_devs(struct cmd_context *cmd, int do_wait) } /* @@ -642,7 +642,7 @@ index a1ab41a..2a2d7ea 100644 log_debug_lvmetad("Enabling lvmetad which was previously disabled."); lvmetad_clear_disabled(cmd); } -@@ -3058,6 +3074,9 @@ int lvmetad_is_disabled(struct cmd_context *cmd, const char **reason) +@@ -3101,6 +3117,9 @@ int lvmetad_is_disabled(struct cmd_context *cmd, const char **reason) } else if (strstr(reply_reason, LVMETAD_DISABLE_REASON_REPAIR)) { *reason = "a repair command was run"; @@ -653,7 +653,7 @@ index a1ab41a..2a2d7ea 100644 *reason = "duplicate PVs were found"; diff --git a/lib/commands/toolcontext.c b/lib/commands/toolcontext.c -index c9596e2..2b72645 100644 +index 25e8b87..511ccd9 100644 --- a/lib/commands/toolcontext.c +++ b/lib/commands/toolcontext.c @@ -36,6 +36,14 @@ @@ -671,7 +671,7 @@ index c9596e2..2b72645 100644 #include #include #include -@@ -1134,12 +1142,14 @@ static struct dev_filter *_init_lvmetad_filter_chain(struct cmd_context *cmd) +@@ -1138,12 +1146,14 @@ static struct dev_filter *_init_lvmetad_filter_chain(struct cmd_context *cmd) } nr_filt++; @@ -686,7 +686,7 @@ index c9596e2..2b72645 100644 /* md component filter. Optional, non-critical. */ if (find_config_tree_bool(cmd, devices_md_component_detection_CFG, NULL)) { -@@ -1340,6 +1350,20 @@ static int _init_formats(struct cmd_context *cmd) +@@ -1344,6 +1354,20 @@ static int _init_formats(struct cmd_context *cmd) const struct dm_config_node *cn; #endif @@ -708,10 +708,10 @@ index c9596e2..2b72645 100644 /* Load any formats in shared libs if not static */ if (!is_static() && diff --git a/lib/config/config_settings.h b/lib/config/config_settings.h -index e98ca6d..6d79087 100644 +index 02e2b29..9904a62 100644 --- a/lib/config/config_settings.h +++ b/lib/config/config_settings.h -@@ -767,14 +767,26 @@ cfg(global_activation_CFG, "activation", global_CFG_SECTION, 0, CFG_TYPE_BOOL, D +@@ -780,14 +780,26 @@ cfg(global_activation_CFG, "activation", global_CFG_SECTION, 0, CFG_TYPE_BOOL, D "is not present in the kernel, disabling this should suppress\n" "the error messages.\n") @@ -5470,10 +5470,10 @@ index 7866d56..e535237 100644 if (vg->lock_type) { outf(f, "lock_type = \"%s\"", vg->lock_type); diff --git a/lib/format_text/format-text.c b/lib/format_text/format-text.c -index 5c7b72f..792d75a 100644 +index b9d85a4..200b011 100644 --- a/lib/format_text/format-text.c +++ b/lib/format_text/format-text.c -@@ -2545,9 +2545,9 @@ struct format_type *create_text_format(struct cmd_context *cmd) +@@ -2559,9 +2559,9 @@ struct format_type *create_text_format(struct cmd_context *cmd) fmt->name = FMT_TEXT_NAME; fmt->alias = FMT_TEXT_ALIAS; fmt->orphan_vg_name = ORPHAN_VG_NAME(FMT_TEXT_NAME); @@ -5565,10 +5565,10 @@ index 2584227..2b53553 100644 case LCK_LV: /* All LV locks are non-blocking. */ diff --git a/lib/metadata/lv_manip.c b/lib/metadata/lv_manip.c -index e4293cc..1c6dc62 100644 +index 9e7eff9..a8c50e7 100644 --- a/lib/metadata/lv_manip.c +++ b/lib/metadata/lv_manip.c -@@ -5981,6 +5981,8 @@ int lv_remove_single(struct cmd_context *cmd, struct logical_volume *lv, +@@ -6003,6 +6003,8 @@ int lv_remove_single(struct cmd_context *cmd, struct logical_volume *lv, force_t force, int suppress_remove_message) { struct volume_group *vg; @@ -5577,7 +5577,7 @@ index e4293cc..1c6dc62 100644 int visible, historical; struct logical_volume *pool_lv = NULL; struct logical_volume *lock_lv = lv; -@@ -6133,6 +6135,10 @@ int lv_remove_single(struct cmd_context *cmd, struct logical_volume *lv, +@@ -6155,6 +6157,10 @@ int lv_remove_single(struct cmd_context *cmd, struct logical_volume *lv, } if (lv_is_cow(lv)) { @@ -5588,7 +5588,7 @@ index e4293cc..1c6dc62 100644 log_verbose("Removing snapshot volume %s.", display_lvname(lv)); /* vg_remove_snapshot() will preload origin/former snapshots */ if (!vg_remove_snapshot(lv)) -@@ -6188,10 +6194,30 @@ int lv_remove_single(struct cmd_context *cmd, struct logical_volume *lv, +@@ -6210,10 +6216,30 @@ int lv_remove_single(struct cmd_context *cmd, struct logical_volume *lv, } } @@ -5620,7 +5620,7 @@ index e4293cc..1c6dc62 100644 /* TODO: defer when multiple LVs relased at once */ if (pool_lv && !update_pool_lv(pool_lv, 1)) { diff --git a/lib/metadata/metadata-exported.h b/lib/metadata/metadata-exported.h -index f4fb112..377644b 100644 +index 75caba1..2245c29 100644 --- a/lib/metadata/metadata-exported.h +++ b/lib/metadata/metadata-exported.h @@ -149,7 +149,7 @@ @@ -5652,7 +5652,7 @@ index f4fb112..377644b 100644 #define MIRROR_BY_SEG 0x00000001U /* segment-by-segment mirror */ #define MIRROR_BY_LV 0x00000002U /* mirror using whole mimage LVs */ diff --git a/lib/metadata/metadata.c b/lib/metadata/metadata.c -index 2292568..e33a779 100644 +index cb38f66..3620240 100644 --- a/lib/metadata/metadata.c +++ b/lib/metadata/metadata.c @@ -1011,6 +1011,8 @@ struct volume_group *vg_create(struct cmd_context *cmd, const char *vg_name) @@ -5664,7 +5664,7 @@ index 2292568..e33a779 100644 vg->extent_size = DEFAULT_EXTENT_SIZE * 2; vg->max_lv = DEFAULT_MAX_LV; -@@ -2971,7 +2973,7 @@ int vg_write(struct volume_group *vg) +@@ -2969,7 +2971,7 @@ int vg_write(struct volume_group *vg) return 0; } @@ -5673,7 +5673,7 @@ index 2292568..e33a779 100644 return_0; if (!vg_mda_used_count(vg)) { -@@ -5375,6 +5377,15 @@ int is_system_id_allowed(struct cmd_context *cmd, const char *system_id) +@@ -5373,6 +5375,15 @@ int is_system_id_allowed(struct cmd_context *cmd, const char *system_id) static int _access_vg_systemid(struct cmd_context *cmd, struct volume_group *vg) { /* @@ -5689,7 +5689,7 @@ index 2292568..e33a779 100644 * A few commands allow read-only access to foreign VGs. */ if (cmd->include_foreign_vgs) -@@ -5426,6 +5437,11 @@ static int _vg_access_permitted(struct cmd_context *cmd, struct volume_group *vg +@@ -5424,6 +5435,11 @@ static int _vg_access_permitted(struct cmd_context *cmd, struct volume_group *vg uint32_t lockd_state, uint32_t *failure) { if (!is_real_vg(vg->name)) { @@ -5979,10 +5979,10 @@ index 0000000..75c97cb + +vgremove -ff $vg diff --git a/tools/args.h b/tools/args.h -index 603a0cf..b80b8da 100644 +index c2fbac6..abe193c 100644 --- a/tools/args.h +++ b/tools/args.h -@@ -1207,7 +1207,8 @@ arg(mirrors_ARG, 'm', "mirrors", number_VAL, 0, 0, +@@ -1211,7 +1211,8 @@ arg(mirrors_ARG, 'm', "mirrors", number_VAL, 0, 0, arg(metadatatype_ARG, 'M', "metadatatype", metadatatype_VAL, 0, 0, "Specifies the type of on-disk metadata to use.\n" "\\fBlvm2\\fP (or just \\fB2\\fP) is the current, standard format.\n" @@ -5993,10 +5993,10 @@ index 603a0cf..b80b8da 100644 arg(name_ARG, 'n', "name", string_VAL, 0, 0, "#lvcreate\n" diff --git a/tools/lvconvert.c b/tools/lvconvert.c -index b149201..3ce228f 100644 +index bc666c0..4b04576 100644 --- a/tools/lvconvert.c +++ b/tools/lvconvert.c -@@ -1770,6 +1770,11 @@ static int _lvconvert_splitsnapshot(struct cmd_context *cmd, struct logical_volu +@@ -1816,6 +1816,11 @@ static int _lvconvert_splitsnapshot(struct cmd_context *cmd, struct logical_volu return 0; } @@ -6009,7 +6009,7 @@ index b149201..3ce228f 100644 /* FIXME: we need to create a lock for the new LV. */ log_error("Unable to split snapshots in VG with lock_type %s.", vg->lock_type); diff --git a/tools/lvmcmdline.c b/tools/lvmcmdline.c -index 0dd24ec..0600b1c 100644 +index a9c3e41..f238b64 100644 --- a/tools/lvmcmdline.c +++ b/tools/lvmcmdline.c @@ -23,6 +23,7 @@ @@ -6020,7 +6020,7 @@ index 0dd24ec..0600b1c 100644 #include #include -@@ -2899,6 +2900,13 @@ int lvm_run_command(struct cmd_context *cmd, int argc, char **argv) +@@ -2913,6 +2914,13 @@ int lvm_run_command(struct cmd_context *cmd, int argc, char **argv) goto out; } @@ -6032,9 +6032,9 @@ index 0dd24ec..0600b1c 100644 + } + if (cmd->command->command_enum == lvconvert_repair_CMD) { - log_warn("WARNING: Disabling lvmetad cache for repair command."); - lvmetad_set_disabled(cmd, LVMETAD_DISABLE_REASON_REPAIR); -@@ -2963,7 +2971,7 @@ int lvm_run_command(struct cmd_context *cmd, int argc, char **argv) + log_warn("WARNING: Not using lvmetad because of repair."); + lvmetad_make_unused(cmd); +@@ -2975,7 +2983,7 @@ int lvm_run_command(struct cmd_context *cmd, int argc, char **argv) * by different token values.) * * lvmetad may have been previously disabled (or disabled during the @@ -6043,7 +6043,7 @@ index 0dd24ec..0600b1c 100644 * In this case, disable the *use* of lvmetad by this command, reverting to * disk scanning. */ -@@ -3388,6 +3396,41 @@ static int _run_script(struct cmd_context *cmd, int argc, char **argv) +@@ -3400,6 +3408,41 @@ static int _run_script(struct cmd_context *cmd, int argc, char **argv) return ret; } @@ -6085,7 +6085,7 @@ index 0dd24ec..0600b1c 100644 static void _nonroot_warning(void) { if (getuid() || geteuid()) -@@ -3477,6 +3520,19 @@ int lvm2_main(int argc, char **argv) +@@ -3489,6 +3532,19 @@ int lvm2_main(int argc, char **argv) } else run_name = dm_basename(argv[0]); @@ -6106,10 +6106,10 @@ index 0dd24ec..0600b1c 100644 * Decide if we are running a shell or a command or a script. When * there is no run_name, it's a shell, when run_name is a recognized diff --git a/tools/pvscan.c b/tools/pvscan.c -index 2915db5..d9ad097 100644 +index daac88f..c43d602 100644 --- a/tools/pvscan.c +++ b/tools/pvscan.c -@@ -631,7 +631,7 @@ out: +@@ -650,7 +650,7 @@ out: * display the PV info. * * iii. If lvmetad is being used, but has been disabled (because of @@ -6118,7 +6118,7 @@ index 2915db5..d9ad097 100644 * (because the device filter is different from the device filter last * used to populate lvmetad), then 'pvscan' will begin by rescanning * devices to repopulate lvmetad. If lvmetad is enabled after the -@@ -644,7 +644,8 @@ out: +@@ -663,7 +663,8 @@ out: * attempt to repopulate the lvmetad cache by rescanning all devs * (regardless of whether lvmetad was previously disabled or had an * unmatching token.) lvmetad may be enabled or disabled after the @@ -6141,7 +6141,7 @@ index 1d58387..f03e5d3 100644 } diff --git a/tools/toollib.c b/tools/toollib.c -index 413937f..b60ff06 100644 +index 3221e5f..bd9c9fe 100644 --- a/tools/toollib.c +++ b/tools/toollib.c @@ -14,6 +14,7 @@ @@ -6152,7 +6152,7 @@ index 413937f..b60ff06 100644 #include "format-text.h" #include -@@ -4110,6 +4111,7 @@ static int _process_duplicate_pvs(struct cmd_context *cmd, +@@ -4168,6 +4169,7 @@ static int _process_duplicate_pvs(struct cmd_context *cmd, .fid = &dummy_fid, .name = "", .system_id = (char *) "", @@ -6160,7 +6160,7 @@ index 413937f..b60ff06 100644 .pvs = DM_LIST_HEAD_INIT(dummy_vg.pvs), .lvs = DM_LIST_HEAD_INIT(dummy_vg.lvs), .historical_lvs = DM_LIST_HEAD_INIT(dummy_vg.historical_lvs), -@@ -4747,6 +4749,23 @@ int pvcreate_params_from_args(struct cmd_context *cmd, struct pvcreate_params *p +@@ -4805,6 +4807,23 @@ int pvcreate_params_from_args(struct cmd_context *cmd, struct pvcreate_params *p pp->pva.label_sector = arg_int64_value(cmd, labelsector_ARG, DEFAULT_LABELSECTOR); @@ -6184,7 +6184,7 @@ index 413937f..b60ff06 100644 if (arg_is_set(cmd, metadataignore_ARG)) pp->pva.metadataignore = arg_int_value(cmd, metadataignore_ARG, DEFAULT_PVMETADATAIGNORE); -@@ -5106,7 +5125,10 @@ static int _pvcreate_check_single(struct cmd_context *cmd, +@@ -5164,7 +5183,10 @@ static int _pvcreate_check_single(struct cmd_context *cmd, pd->is_orphan_pv = 1; } @@ -6196,7 +6196,7 @@ index 413937f..b60ff06 100644 } else { log_debug("Found pvcreate arg %s: device is not a PV.", pd->name); /* Device is not a PV. */ -@@ -5335,7 +5357,10 @@ static int _pvremove_check_single(struct cmd_context *cmd, +@@ -5393,7 +5415,10 @@ static int _pvremove_check_single(struct cmd_context *cmd, pd->is_orphan_pv = 1; } @@ -6231,10 +6231,10 @@ index 79c48b5..95dc8b2 100644 val(segtype_VAL, segtype_arg, "SegType", "linear|striped|snapshot|mirror|raid|thin|cache|thin-pool|cache-pool") val(alloc_VAL, alloc_arg, "Alloc", "contiguous|cling|cling_by_tags|normal|anywhere|inherit") diff --git a/tools/vgchange.c b/tools/vgchange.c -index 623517b..67be3ec 100644 +index 24c2253..4498f06 100644 --- a/tools/vgchange.c +++ b/tools/vgchange.c -@@ -534,6 +534,13 @@ static int _vgchange_system_id(struct cmd_context *cmd, struct volume_group *vg) +@@ -545,6 +545,13 @@ static int _vgchange_system_id(struct cmd_context *cmd, struct volume_group *vg) const char *system_id; const char *system_id_arg_str = arg_str_value(cmd, systemid_ARG, NULL); @@ -6248,7 +6248,7 @@ index 623517b..67be3ec 100644 if (!(system_id = system_id_from_string(cmd, system_id_arg_str))) { log_error("Unable to set system ID."); return 0; -@@ -583,6 +590,9 @@ static int _vgchange_system_id(struct cmd_context *cmd, struct volume_group *vg) +@@ -594,6 +601,9 @@ static int _vgchange_system_id(struct cmd_context *cmd, struct volume_group *vg) vg->system_id = system_id; diff --git a/SOURCES/lvm2-rhel7.patch b/SOURCES/lvm2-rhel7.patch index e14a8e99..4f0ba4db 100644 --- a/SOURCES/lvm2-rhel7.patch +++ b/SOURCES/lvm2-rhel7.patch @@ -3,16 +3,16 @@ 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/VERSION b/VERSION -index 9e5739e..98731d0 100644 +index 583267e..a7cba47 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ --2.02.180(2) (2018-07-19) -+2.02.180(2)-RHEL7 (2018-07-20) +-2.02.185(2) (2019-05-13) ++2.02.185(2)-RHEL7 (2019-05-13) diff --git a/VERSION_DM b/VERSION_DM -index 88fc33b..1da204c 100644 +index 8c4af2c..6b38abe 100644 --- a/VERSION_DM +++ b/VERSION_DM @@ -1 +1 @@ --1.02.149 (2018-07-19) -+1.02.149-RHEL7 (2018-07-20) +-1.02.158 (2019-05-13) ++1.02.158-RHEL7 (2019-05-13) diff --git a/SOURCES/lvm2-set-default-preferred_names.patch b/SOURCES/lvm2-set-default-preferred_names.patch index a1b30346..205dd10f 100644 --- a/SOURCES/lvm2-set-default-preferred_names.patch +++ b/SOURCES/lvm2-set-default-preferred_names.patch @@ -3,7 +3,7 @@ 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/conf/example.conf.in b/conf/example.conf.in -index aab274d..4894d04 100644 +index 38855e9..7ccf928 100644 --- a/conf/example.conf.in +++ b/conf/example.conf.in @@ -106,7 +106,7 @@ devices { @@ -16,7 +16,7 @@ index aab274d..4894d04 100644 # Configuration option devices/filter. # Limit the block devices that are used by LVM commands. diff --git a/lib/config/config_settings.h b/lib/config/config_settings.h -index 077fb15..65cda08 100644 +index 0e81252..02e2b29 100644 --- a/lib/config/config_settings.h +++ b/lib/config/config_settings.h @@ -255,7 +255,7 @@ cfg(devices_external_device_info_source_CFG, "external_device_info_source", devi diff --git a/SPECS/lvm2.spec b/SPECS/lvm2.spec index 0e39dee7..9d8bece2 100644 --- a/SPECS/lvm2.spec +++ b/SPECS/lvm2.spec @@ -1,4 +1,4 @@ -%global device_mapper_version 1.02.149 +%global device_mapper_version 1.02.158 %global enable_cache 1 %global enable_cluster 1 @@ -27,7 +27,7 @@ %global boom_pkgname lvm2-python-boom %global boom_version 0.9 -%global boom_release 13 +%global boom_release 18 %global boom_summary A set of libraries and tools for managing boot loader entries %global boom_dir boom-%{boom_version} @@ -40,10 +40,6 @@ %global enable_lockd_dlm 0 %endif - %ifarch ppc64 - %global enable_cmirror 1 - %endif - %ifnarch x86_64 ppc64 aarch64 %global enable_lockd_sanlock 0 %endif @@ -70,8 +66,8 @@ Summary: Userland logical volume management tools Name: lvm2 Epoch: 7 -Version: 2.02.180 -Release: 10%{?dist}.2%{?scratch} +Version: 2.02.185 +Release: 2%{?dist}%{?scratch} License: GPLv2 Group: System Environment/Base URL: http://sources.redhat.com/lvm2 @@ -82,32 +78,13 @@ Patch1: lvm2-set-default-preferred_names.patch Patch2: lvm2-fix-libdm-versioning-for-dm_tree_node_size_changed-symbol.patch Patch3: lvm2-drop-unavailable-libblkid-2_24-BLKID_SUBLKS_BADCSUM-for-signature-detection.patch Patch4: lvm2-default-allow-changes-with-duplicate-pvs.patch -Patch5: lvm2-rhel7-fix-StartLimitInterval.patch +#Patch5: lvm2-rhel7-fix-StartLimitInterval.patch Patch6: lvm2-rhel7-add-lvm1-and-pool-back.patch -Patch7: lvm2-2_02_180-make-generate.patch -Patch8: lvm2-2_02_181-post-release.patch -Patch9: lvm2-2_02_181-lvconvert-restrict-command-matching-for-no-option-va.patch -Patch10: lvm2-2_02_181-lvconvert-improve-text-about-splitmirrors.patch -Patch11: lvm2-2_02_181-lvconvert-reject-conversions-of-LVs-under-snapshot.patch -Patch12: lvm2-2_02_181-dmsetup-fix-error-propagation-in-_display_info_cols.patch -Patch13: lvm2-2_02_181-reject-conversions-trackchanges-SubLVs.patch -Patch14: lvm2-2_02_181-reject-conversions-trackchanges-LVs.patch -Patch15: lvm2-2_02_181-dmeventd-base-vdo-plugin.patch -Patch16: lvm2-2_02_181-dmeventd-rebase-to-stable-branch.patch -Patch17: lvm2-2_02_181-WHATS_NEW.patch -Patch18: lvm2-2_02_181-build-make-generate.patch -Patch19: lvm2-2_02_182-vgcreate-close-exclusive-fd-after-pvcreate.patch -Patch20: lvm2-2_02_182-mirrors-fix-read_only_volume_list.patch -Patch21: lvm2-2_02_182-cache-drop-metadata_format-validation.patch -Patch22: lvm2-2_02_182-mirror-fix-splitmirrors-for-mirror-type.patch -Patch23: lvm2-2_02_182-lvconvert-fix-direct-raid0-to-striped-conversion.patch -Patch24: lvm2-2_02_182-lvconvert-fix-conversion-attempts-to-linear.patch -Patch25: lvm2-2_02_182-dmeventd-lvm2-plugin-uses-envvar-registry.patch -Patch26: lvm2-2_02_182-scripts-add-After-rbdmap.service-to-lvm2-activation.patch -Patch27: lvm2-2_02_182-lvconvert-avoid-superfluous-interim-raid-type.patch -Patch28: lvm2-2_02_182-lvconvert-fix-interim-segtype-regression-on-raid6-co.patch -Patch29: lvm2-2_02_182-fix-clustered-mirror-repair.patch -Patch30: lvm2-2_02_182-metadata-prevent-writing-beyond-metadata-area.patch +Patch7: lvm2-2_02_186-lvmlockd-do-not-allow-mirror-LV-to-be-activated-shar.patch +Patch8: lvm2-2_02_186-man-updates-to-lvmlockd.patch +Patch9: lvm2-2_02_186-cache-support-no_discard_passdown.patch +Patch10: lvm2-2_02_186-mirror-fix-monitoring-change.patch +Patch11: lvm2-make-generate.patch BuildRequires: libselinux-devel >= %{libselinux_version}, libsepol-devel BuildRequires: libblkid-devel >= %{util_linux_version} @@ -165,32 +142,13 @@ or more physical volumes and creating one or more logical volumes %patch2 -p1 -b .libdm_symbol_versioning %patch3 -p1 -b .blkid_sublks_badcsum %patch4 -p1 -b .default_allow_dup -%patch5 -p1 -b .startlimitinterval +#%%patch5 -p1 -b .startlimitinterval %patch6 -p1 -b .add_lvm1_and_pool -%patch7 -p1 -b .make_generate -%patch8 -p1 -b .post_release -%patch9 -p1 -b .lvconvert_matching_no_option -%patch10 -p1 -b .lvconvert_text_splitmirrors -%patch11 -p1 -b .reject_conversions_under_snapshot -%patch12 -p1 -b .dmsetup_fix_error_display_info_cols -%patch13 -p1 -b .reject_conversions_trackchage_LVs -%patch14 -p1 -b .reject_conversions_trackchang_subLVs -%patch15 -p1 -b .dmeventd_base_vdo_plugin -%patch16 -p1 -b .dmeventd_rebase_to_stable_branch -%patch17 -p1 -b .WHATS_NEW -%patch18 -p1 -b .build_make_generate -%patch19 -p1 -b .close_excl_fd_after_pvcreate -%patch20 -p1 -b .mirrors_fix_RO_volume_list -%patch21 -p1 -b .cache_drop_metadata_format_validation -%patch22 -p1 -b .mirror_fix_splitmirrors -%patch23 -p1 -b .direct_raid0_to_striped_conversion -%patch24 -p1 -b .fix_conversion_to_linear -%patch25 -p1 -b .dmeventd_lvm2_plugin_uses_envvar_registry -%patch26 -p1 -b .lvm2_activation_after_rdbmap -%patch27 -p1 -b .avoid_superfluous_raid_conversion -%patch28 -p1 -b .fix_interim_segtype_on_raid6 -%patch29 -p1 -b .fix_clvmd_mirror -%patch30 -p1 -b .prevent_writing_beyond_MDA +%patch7 -p1 -b .lvmlockd_do_not_allow_mirror_LV_activation +%patch8 -p1 -b .man_updates_to_lvmlockd +%patch9 -p1 -b .cache_support_no_discard_passdown +%patch10 -p1 -b .mirror_fix_monitoring_change +%patch11 -p1 -b .generate %build %global _default_pid_dir /run @@ -242,7 +200,7 @@ make %{?_smp_mflags} %if %{enable_boom} ( cd ../%{boom_dir} -%{__python} setup.py build +%py2_build ) %endif @@ -257,7 +215,7 @@ make install_tmpfiles_configuration DESTDIR=$RPM_BUILD_ROOT %if %{enable_boom} ( cd ../%{boom_dir} -%{__python} setup.py install --root %{buildroot} --optimize 2 +%py2_install # Install Grub2 integration scripts install -d -m 700 ${RPM_BUILD_ROOT}/etc/grub.d @@ -938,7 +896,7 @@ the device-mapper event library. %package -n %{boom_pkgname} Summary: %{boom_summary} Version: %{boom_version} -Release: %{boom_release}%{?dist}.2%{?scratch} +Release: %{boom_release}%{?dist}%{?scratch} License: GPLv2 Group: System Environment/Base BuildArch: noarch @@ -969,6 +927,42 @@ This package provides the python2 version of boom. %endif %changelog +* Fri Jun 21 2019 Marian Csontos - 7:2.02.185-2 +- Fix cluster conversions from linear to mirror. +- Report no_discard_passdown for cache LVs with lvs -o+kernel_discards. +- Prevent shared active mirror LVs with lvmlockd. +- Parsing of cache status understand no_discard_passdown. + +* Mon May 13 2019 Marian Csontos - 7:2.02.185-1 +- Fix change of monitoring in clustered volumes. +- Improve -lXXX%VG modifier which improves cache segment estimation. +- Add synchronization with udev before removing cached devices. +- Fix missing growth of _pmspare volume when extending _tmeta volume. +- Automatically grow thin metadata, when thin data gets too big. + +* Mon Apr 29 2019 Marian Csontos - 7:2.02.184-3 +- Fix shutdown of deamons. + +* Wed Apr 17 2019 Marian Csontos - 7:2.02.184-2 +- Add support for vgsplit with cached devices. +- Fix conversion of cache pool to RAID1 (2.02.184). +- Fix signal delivery checking race in libdaemon (lvmetad). +- Add missing Before=shutdown.target to LVM2 services to fix shutdown ordering. + +* Fri Mar 22 2019 Marian Csontos - 7:2.02.184-1 +- See WHATS_NEW and WHATS_NEW_DM in the documentation directory for details. + +* Mon Mar 18 2019 Marian Csontos - 7:2.02.180-10.el7_6.5 +- boom: Bump release. + +* Mon Mar 18 2019 Marian Csontos - 7:2.02.180-10.el7_6.4 +- Apply obtain_device_list_from_udev to all libudev calls. + +* Mon Dec 17 2018 Marian Csontos - 7:2.02.180-10.el7_6.3 +- Fix component detection for MD RAID version 1.0 and 0.90. +- Use sync io if async io_setup fails, or when use_aio=0 is set in config. +- Fix dmstats report printing no output. + * Wed Oct 31 2018 Marian Csontos - 7:2.02.180-10.el7_6.2 - Fix possible write beyond metadata area.