New upstream release v2.02.119.

This commit is contained in:
Peter Rajnoha 2015-05-04 14:47:56 +02:00
parent d65504907b
commit 704f3c9b48
10 changed files with 151 additions and 301 deletions

1
.gitignore vendored
View File

@ -24,3 +24,4 @@
/LVM2.2.02.115.tgz
/LVM2.2.02.116.tgz
/LVM2.2.02.118.tgz
/LVM2.2.02.119.tgz

View File

@ -1,7 +0,0 @@
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.14 (GNU/Linux)
iEYEABECAAYFAlTLr0QACgkQIoGRwVZ+LBc9zACfUCigIN9xYpsZLhxAz6J4Gx3n
H4MAoLAY++8ZzWZUDLS9BIyW/u8NPyxS
=fK6H
-----END PGP SIGNATURE-----

View File

@ -1,7 +0,0 @@
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.14 (GNU/Linux)
iEYEABECAAYFAlUQxcsACgkQIoGRwVZ+LBeixACguJS3FpEpQMxLEX9IHTyikEzz
vykAnid+xH8raOH7DLrrSX2H+5QL5GXw
=rHiT
-----END PGP SIGNATURE-----

7
LVM2.2.02.119.tgz.asc Normal file
View File

@ -0,0 +1,7 @@
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.14 (GNU/Linux)
iEYEABECAAYFAlVEHgMACgkQIoGRwVZ+LBcbPACg3ajbXrepK0o8IFgB+VCRzFH7
VhUAoMivFvC5JmzFenPMyMU9kbXNuNTw
=+26S
-----END PGP SIGNATURE-----

View File

@ -1,251 +0,0 @@
commit d40cd5403abe4c8297a2b0de10bf2f7481c5489e
Author: Peter Rajnoha <prajnoha@redhat.com>
Date: Tue Mar 24 13:57:04 2015 +0100
0
---
WHATS_NEW | 4 ++++
lib/format_text/flags.c | 1 +
lib/metadata/lv_manip.c | 4 +++-
lib/metadata/metadata-exported.h | 13 ++++++++++++-
lib/metadata/metadata.c | 14 ++++++++++++++
lib/metadata/vg.c | 1 +
lib/metadata/vg.h | 5 +++++
test/shell/select-tools-thin.sh | 35 +++++++++++++++++++++++++++++++++++
tools/toollib.c | 28 ++++++++++++++++++++++++----
9 files changed, 99 insertions(+), 6 deletions(-)
diff --git a/WHATS_NEW b/WHATS_NEW
index 558bdb5..4010e67 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,3 +1,7 @@
+Version 2.02.119 -
+==================================
+ Fix LV processing with selection to always do the selection on initial state.
+
Version 2.02.118 - 23rd March 2015
==================================
Store metadata size + checksum in lvmcache and add struct lvmcache_vgsummary.
diff --git a/lib/format_text/flags.c b/lib/format_text/flags.c
index a975606..bbd47c3 100644
--- a/lib/format_text/flags.c
+++ b/lib/format_text/flags.c
@@ -92,6 +92,7 @@ static const struct flag _lv_flags[] = {
{CACHE_POOL_DATA, NULL, 0},
{CACHE_POOL_METADATA, NULL, 0},
{LV_PENDING_DELETE, NULL, 0}, /* FIXME Display like COMPATIBLE_FLAG */
+ {LV_REMOVED, NULL, 0},
{0, NULL, 0}
};
diff --git a/lib/metadata/lv_manip.c b/lib/metadata/lv_manip.c
index c9c1145..99fb91f 100644
--- a/lib/metadata/lv_manip.c
+++ b/lib/metadata/lv_manip.c
@@ -5338,6 +5338,7 @@ int link_lv_to_vg(struct volume_group *vg, struct logical_volume *lv)
lvl->lv = lv;
lv->vg = vg;
dm_list_add(&vg->lvs, &lvl->list);
+ lv->status &= ~LV_REMOVED;
return 1;
}
@@ -5349,7 +5350,8 @@ int unlink_lv_from_vg(struct logical_volume *lv)
if (!(lvl = find_lv_in_vg(lv->vg, lv->name)))
return_0;
- dm_list_del(&lvl->list);
+ dm_list_move(&lv->vg->removed_lvs, &lvl->list);
+ lv->status |= LV_REMOVED;
return 1;
}
diff --git a/lib/metadata/metadata-exported.h b/lib/metadata/metadata-exported.h
index 1555c87..47fb9ae 100644
--- a/lib/metadata/metadata-exported.h
+++ b/lib/metadata/metadata-exported.h
@@ -119,11 +119,20 @@
#define CACHE UINT64_C(0x0001000000000000) /* LV - Internal use only */
#define LV_PENDING_DELETE UINT64_C(0x0004000000000000) /* LV - Internal use only */
+#define LV_REMOVED UINT64_C(0x0040000000000000) /* LV - Internal use only
+ This flag is used to mark an LV once it has
+ been removed from the VG. It might still
+ be referenced on internal lists of LVs.
+ Any remaining references should check for
+ this flag and ignore the LV is set.
+ FIXME: Remove this flag once we have indexed
+ vg->removed_lvs for quick lookup.
+ */
#define LV_ERROR_WHEN_FULL UINT64_C(0x0008000000000000) /* LV - error when full */
#define PV_ALLOCATION_PROHIBITED UINT64_C(0x0010000000000000) /* PV - internal use only - allocation prohibited
e.g. to prohibit allocation of a RAID image
on a PV already holing an image of the RAID set */
-/* Next unused flag: UINT64_C(0x0040000000000000) */
+/* Next unused flag: UINT64_C(0x0080000000000000) */
/* Format features flags */
#define FMT_SEGMENTS 0x00000001U /* Arbitrary segment params? */
@@ -222,6 +231,8 @@
#define lv_is_rlog(lv) (((lv)->status & REPLICATOR_LOG) ? 1 : 0)
+#define lv_is_removed(lv) (((lv)->status & LV_REMOVED) ? 1 : 0)
+
int lv_layout_and_role(struct dm_pool *mem, const struct logical_volume *lv,
struct dm_list **layout, struct dm_list **role);
diff --git a/lib/metadata/metadata.c b/lib/metadata/metadata.c
index 33ce370..a1a31eb 100644
--- a/lib/metadata/metadata.c
+++ b/lib/metadata/metadata.c
@@ -2568,12 +2568,26 @@ int vg_validate(struct volume_group *vg)
r = 0;
}
+ dm_list_iterate_items(lvl, &vg->removed_lvs) {
+ if (!(lvl->lv->status & LV_REMOVED)) {
+ log_error(INTERNAL_ERROR "LV %s is not marked as removed while it's part "
+ "of removed LV list for VG %s", lvl->lv->name, vg->name);
+ r = 0;
+ }
+ }
+
/*
* Count all non-snapshot invisible LVs
*/
dm_list_iterate_items(lvl, &vg->lvs) {
lv_count++;
+ if (lvl->lv->status & LV_REMOVED) {
+ log_error(INTERNAL_ERROR "LV %s is marked as removed while it's "
+ "still part of the VG %s", lvl->lv->name, vg->name);
+ r = 0;
+ }
+
if (lvl->lv->status & LVM_WRITE_LOCKED) {
log_error(INTERNAL_ERROR "LV %s has external flag LVM_WRITE_LOCKED set internally.",
lvl->lv->name);
diff --git a/lib/metadata/vg.c b/lib/metadata/vg.c
index 404cc6f..c9a7e9e 100644
--- a/lib/metadata/vg.c
+++ b/lib/metadata/vg.c
@@ -63,6 +63,7 @@ struct volume_group *alloc_vg(const char *pool_name, struct cmd_context *cmd,
dm_list_init(&vg->pvs_to_create);
dm_list_init(&vg->lvs);
dm_list_init(&vg->tags);
+ dm_list_init(&vg->removed_lvs);
dm_list_init(&vg->removed_pvs);
log_debug_mem("Allocated VG %s at %p.", vg->name, vg);
diff --git a/lib/metadata/vg.h b/lib/metadata/vg.h
index 67a04a0..b0ab122 100644
--- a/lib/metadata/vg.h
+++ b/lib/metadata/vg.h
@@ -113,6 +113,11 @@ struct volume_group {
*/
/*
+ * List of removed logical volumes by _lv_reduce.
+ */
+ struct dm_list removed_lvs;
+
+ /*
* List of removed physical volumes by pvreduce.
* They have to get cleared on vg_commit.
*/
diff --git a/test/shell/select-tools-thin.sh b/test/shell/select-tools-thin.sh
new file mode 100644
index 0000000..d70289f
--- /dev/null
+++ b/test/shell/select-tools-thin.sh
@@ -0,0 +1,35 @@
+#!/bin/sh
+# Copyright (C) 2015 Red Hat, Inc. All rights reserved.
+#
+# This copyrighted material is made available to anyone wishing to use,
+# modify, copy, or redistribute it subject to the terms and conditions
+# of the GNU General Public License v.2.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+. lib/inittest
+
+aux have_thin 1 0 0 || skip
+
+aux prepare_pvs 1 16
+
+#########################
+# special cases to test #
+#########################
+
+# if calling lvremove and an LV is removed that is related to other LV
+# and we're doing selection based on this relation, check if we're
+# selecting on initial state (here, thin origin LV thin_orig is removed
+# first, but thin snap should be still selectable based on origin=thin_orig
+# condition even though thin_orig has just been removed)
+vgcreate -s 4m $vg1 $dev1
+lvcreate -l100%FREE -T $vg1/pool
+lvcreate -V4m -T $vg1/pool -n thin_orig
+lvcreate -s $vg1/thin_orig -n thin_snap
+lvremove -ff -S 'lv_name=thin_orig || origin=thin_orig' > out
+grep "Logical volume \"thin_orig\" successfully removed" out
+grep "Logical volume \"thin_snap\" successfully removed" out
+not lvs $vg1/thin_orig
+not lvs $vg1/thin_snap
diff --git a/tools/toollib.c b/tools/toollib.c
index 4bd2339..142ff33 100644
--- a/tools/toollib.c
+++ b/tools/toollib.c
@@ -1957,6 +1957,10 @@ int process_each_lv_in_vg(struct cmd_context *cmd, struct volume_group *vg,
unsigned lvargs_supplied = 0;
struct lv_list *lvl;
struct dm_str_list *sl;
+ struct dm_list final_lvs;
+ struct lv_list *final_lvl;
+
+ dm_list_init(&final_lvs);
if (!vg_check_status(vg, EXPORTED_VG)) {
ret_max = ECMD_FAILED;
@@ -1986,10 +1990,6 @@ int process_each_lv_in_vg(struct cmd_context *cmd, struct volume_group *vg,
(tags_supplied && str_list_match_list(tags_in, &vg->tags, NULL)))
process_all = 1;
- /*
- * FIXME: In case of remove it goes through deleted entries,
- * but it works since entries are allocated from vg mem pool.
- */
dm_list_iterate_items(lvl, &vg->lvs) {
if (sigint_caught()) {
ret_max = ECMD_FAILED;
@@ -2049,6 +2049,26 @@ int process_each_lv_in_vg(struct cmd_context *cmd, struct volume_group *vg,
if (!process_lv)
continue;
+ log_very_verbose("Adding %s/%s to the list of LVs to be processed.", vg->name, lvl->lv->name);
+
+ if (!(final_lvl = dm_pool_zalloc(vg->vgmem, sizeof(struct lv_list)))) {
+ log_error("Failed to allocate final LV list item.");
+ ret_max = ECMD_FAILED;
+ goto_out;
+ }
+ final_lvl->lv = lvl->lv;
+ dm_list_add(&final_lvs, &final_lvl->list);
+ }
+
+ dm_list_iterate_items(lvl, &final_lvs) {
+ /*
+ * FIXME: Once we have index over vg->removed_lvs, check directly
+ * LV presence there and remove LV_REMOVE flag/lv_is_removed fn
+ * as they won't be needed anymore.
+ */
+ if (lv_is_removed(lvl->lv))
+ continue;
+
log_very_verbose("Processing LV %s in VG %s.", lvl->lv->name, vg->name);
ret = process_single_lv(cmd, lvl->lv, handle);

View File

@ -3,28 +3,28 @@
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/conf/example.conf.in b/conf/example.conf.in
index d1a1397..812b747 100644
index c1a8f03..98a5f42 100644
--- a/conf/example.conf.in
+++ b/conf/example.conf.in
@@ -730,7 +730,7 @@ global {
# is set at the same time, LVM always issues a warning message about this
# and then it automatically disables use_lvmetad.
@@ -820,7 +820,7 @@ global {
# lvmetad is not compatible with locking_type 3 (clustering).
# LVM prints warnings and ignores lvmetad if this combination
# is seen.
- use_lvmetad = 0
+ use_lvmetad = 1
- use_lvmetad = 0
+ use_lvmetad = 1
# Full path of the utility called to check that a thin metadata device
# is in a state that allows it to be used.
# Configuration option global/thin_check_executable.
# The full path to the thin_check command.
diff --git a/lib/config/config_settings.h b/lib/config/config_settings.h
index e944b81..7b5beff 100644
index 31609d4..35cb04d 100644
--- a/lib/config/config_settings.h
+++ b/lib/config/config_settings.h
@@ -177,7 +177,7 @@ cfg(global_mirror_segtype_default_CFG, "mirror_segtype_default", global_CFG_SECT
cfg(global_raid10_segtype_default_CFG, "raid10_segtype_default", global_CFG_SECTION, 0, CFG_TYPE_STRING, DEFAULT_RAID10_SEGTYPE, vsn(2, 2, 99), NULL)
cfg(global_sparse_segtype_default_CFG, "sparse_segtype_default", global_CFG_SECTION, 0, CFG_TYPE_STRING, DEFAULT_SPARSE_SEGTYPE, vsn(2, 2, 112), NULL)
cfg(global_lvdisplay_shows_full_device_path_CFG, "lvdisplay_shows_full_device_path", global_CFG_SECTION, CFG_PROFILABLE, CFG_TYPE_BOOL, DEFAULT_LVDISPLAY_SHOWS_FULL_DEVICE_PATH, vsn(2, 2, 89), NULL)
-cfg(global_use_lvmetad_CFG, "use_lvmetad", global_CFG_SECTION, 0, CFG_TYPE_BOOL, 0, vsn(2, 2, 93), NULL)
+cfg(global_use_lvmetad_CFG, "use_lvmetad", global_CFG_SECTION, 0, CFG_TYPE_BOOL, 1, vsn(2, 2, 93), NULL)
cfg(global_thin_check_executable_CFG, "thin_check_executable", global_CFG_SECTION, CFG_ALLOW_EMPTY, CFG_TYPE_STRING, THIN_CHECK_CMD, vsn(2, 2, 94), NULL)
cfg_array(global_thin_check_options_CFG, "thin_check_options", global_CFG_SECTION, 0, CFG_TYPE_STRING, "#S" DEFAULT_THIN_CHECK_OPTIONS, vsn(2, 2, 96), NULL)
cfg_array(global_thin_disabled_features_CFG, "thin_disabled_features", global_CFG_SECTION, CFG_ALLOW_EMPTY, CFG_TYPE_STRING, NULL, vsn(2, 2, 99), NULL)
@@ -780,7 +780,7 @@ cfg(global_lvdisplay_shows_full_device_path_CFG, "lvdisplay_shows_full_device_pa
"was never a valid path in the /dev filesystem.\n"
"Enable this option to reinstate the previous format.\n")
-cfg(global_use_lvmetad_CFG, "use_lvmetad", global_CFG_SECTION, 0, CFG_TYPE_BOOL, 0, vsn(2, 2, 93), NULL, 0, NULL,
+cfg(global_use_lvmetad_CFG, "use_lvmetad", global_CFG_SECTION, 0, CFG_TYPE_BOOL, 1, vsn(2, 2, 93), NULL, 0, NULL,
"Use lvmetad to cache metadata and reduce disk scanning.\n"
"When enabled (and running), lvmetad provides LVM commands\n"
"with VG metadata and PV state. LVM commands then avoid\n"

View File

@ -1,11 +1,31 @@
--- LVM2.2.02.108/conf/example.conf.in 2014-07-23 16:21:02.000000000 +0100
+++ LVM2.2.02.108-new/conf/example.conf.in 2014-07-23 23:05:06.000000000 +0100
@@ -58,7 +58,7 @@
# preferred_names = [ ]
conf/example.conf.in | 3 +--
lib/config/config_settings.h | 2 +-
2 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/conf/example.conf.in b/conf/example.conf.in
index c1a8f03..2b04496 100644
--- a/conf/example.conf.in
+++ b/conf/example.conf.in
@@ -91,8 +91,7 @@ devices {
# Rule 4 prefers the path with least value in lexicographical order.
# Example:
# preferred_names = [ "^/dev/mpath/", "^/dev/mapper/mpath", "^/dev/[hs]d" ]
- # This configuration option does not have a default value defined.
- # preferred_names=[]
+ preferred_names = [ "^/dev/mpath/", "^/dev/mapper/mpath", "^/dev/[hs]d" ]
# Try to avoid using undescriptive /dev/dm-N names, if present.
- # preferred_names = [ "^/dev/mpath/", "^/dev/mapper/mpath", "^/dev/[hs]d" ]
+ preferred_names = [ "^/dev/mpath/", "^/dev/mapper/mpath", "^/dev/[hs]d" ]
# 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 31609d4..ac5cf5f 100644
--- a/lib/config/config_settings.h
+++ b/lib/config/config_settings.h
@@ -186,7 +186,7 @@ cfg(devices_external_device_info_source_CFG, "external_device_info_source", devi
"udev - Reuse existing udev database records. Applicable\n"
"only if LVM is compiled with udev support.\n")
# In case no prefererred name matches or if preferred_names are not
# defined at all, builtin rules are used to determine the preference.
-cfg_array(devices_preferred_names_CFG, "preferred_names", devices_CFG_SECTION, CFG_ALLOW_EMPTY | CFG_DEFAULT_UNDEFINED, CFG_TYPE_STRING, NULL, vsn(1, 2, 19), NULL, 0, NULL,
+cfg_array(devices_preferred_names_CFG, "preferred_names", devices_CFG_SECTION, CFG_ALLOW_EMPTY, CFG_TYPE_STRING, "#S^/dev/mpath/#S^/dev/mapper/mpath#S/dev/[hs]d", vsn(1, 2, 19), NULL, 0, NULL,
"Select which path name to display for a block device.\n"
"If multiple path names exist for a block device,\n"
"and LVM needs to display a name for the device,\n"

View File

@ -39,7 +39,7 @@
Summary: Userland logical volume management tools
Name: lvm2
Version: 2.02.118
Version: 2.02.119
Release: 1%{?dist}
License: GPLv2
Group: System Environment/Base
@ -48,7 +48,6 @@ Source0: ftp://sources.redhat.com/pub/lvm2/releases/LVM2.%{version}.tgz
Patch0: lvm2-set-default-preferred_names.patch
Patch1: lvm2-enable-lvmetad-by-default.patch
Patch2: lvm2-remove-mpath-device-handling-from-udev-rules.patch
Patch3: lvm2-2_02_119-fix-process_each_lv_in_vg-to-do-selection-first-then-processing.patch
BuildRequires: libselinux-devel >= %{libselinux_version}, libsepol-devel
BuildRequires: libblkid-devel >= %{util_linux_version}
@ -64,6 +63,7 @@ BuildRequires: systemd-devel
BuildRequires: systemd-units
%if %{enable_python}
BuildRequires: python2-devel
BuildRequires: python3-devel
BuildRequires: python-setuptools
%endif
%if %{enable_thin} || %{enable_cache}
@ -92,7 +92,6 @@ or more physical volumes and creating one or more logical volumes
%patch0 -p1 -b .preferred_names
%patch1 -p1 -b .enable_lvmetad
%patch2 -p1 -b .udev_no_mpath
%patch3 -p1 -b .process_each_lv_select
%build
%define _default_pid_dir /run
@ -119,10 +118,24 @@ or more physical volumes and creating one or more logical volumes
%if %{enable_python}
%define configure_python --enable-python-bindings
%define configure_python3_flags PYTHON=/usr/bin/python3 PYTHON_CONFIG=/usr/bin/python3-config
%endif
%configure --with-default-dm-run-dir=%{_default_dm_run_dir} --with-default-run-dir=%{_default_run_dir} --with-default-pid-dir=%{_default_pid_dir} --with-default-locking-dir=%{_default_locking_dir} --with-usrlibdir=%{_libdir} --enable-lvm1_fallback --enable-fsadm --with-pool=internal --enable-write_install --with-user= --with-group= --with-device-uid=0 --with-device-gid=6 --with-device-mode=0660 --enable-pkgconfig --enable-applib --enable-cmdlib --enable-dmeventd --enable-blkid_wiping %{?configure_python} %{?configure_cluster} %{?configure_cmirror} %{?configure_udev} %{?configure_thin} %{?configure_lvmetad} %{?configure_cache}
%define configure_final --with-default-dm-run-dir=%{_default_dm_run_dir} --with-default-run-dir=%{_default_run_dir} --with-default-pid-dir=%{_default_pid_dir} --with-default-locking-dir=%{_default_locking_dir} --with-usrlibdir=%{_libdir} --enable-lvm1_fallback --enable-fsadm --with-pool=internal --enable-write_install --with-user= --with-group= --with-device-uid=0 --with-device-gid=6 --with-device-mode=0660 --enable-pkgconfig --enable-applib --enable-cmdlib --enable-dmeventd --enable-blkid_wiping %{?configure_python} %{?configure_cluster} %{?configure_cmirror} %{?configure_udev} %{?configure_thin} %{?configure_lvmetad} %{?configure_cache}
%if %{enable_python}
rm -rf %{py3dir}
cp -a . %{py3dir}
# Also configure and build Python 3 bindings.
pushd %{py3dir}
%configure %{?configure_final} %{?configure_python3_flags}
make %{?_smp_mflags}
popd
%endif
%configure %{?configure_final}
make %{?_smp_mflags}
%install
@ -132,6 +145,13 @@ make install_systemd_units DESTDIR=$RPM_BUILD_ROOT
make install_systemd_generators DESTDIR=$RPM_BUILD_ROOT
make install_tmpfiles_configuration DESTDIR=$RPM_BUILD_ROOT
%if %{enable_python}
# Also install Python3 bindings.
pushd %{py3dir}
make -C python install DESTDIR=$RPM_BUILD_ROOT
popd
%endif
%clean
rm -rf $RPM_BUILD_ROOT
@ -169,10 +189,10 @@ rm -rf $RPM_BUILD_ROOT
# Main binaries
%defattr(555,root,root,-)
%{_sbindir}/blkdeactivate
%{_sbindir}/fsadm
%{_sbindir}/lvm
%{_sbindir}/lvmconf
%{_sbindir}/lvmconfig
%{_sbindir}/lvmdump
%if %{enable_lvmetad}
%{_sbindir}/lvmetad
@ -227,7 +247,6 @@ rm -rf $RPM_BUILD_ROOT
%{_mandir}/man7/lvmcache.7.gz
%{_mandir}/man7/lvmthin.7.gz
%{_mandir}/man7/lvmsystemid.7.gz
%{_mandir}/man8/blkdeactivate.8.gz
%{_mandir}/man8/fsadm.8.gz
%{_mandir}/man8/lvchange.8.gz
%{_mandir}/man8/lvconvert.8.gz
@ -236,6 +255,8 @@ rm -rf $RPM_BUILD_ROOT
%{_mandir}/man8/lvextend.8.gz
%{_mandir}/man8/lvm.8.gz
%{_mandir}/man8/lvm2-activation-generator.8.gz
%{_mandir}/man8/lvm-config.8.gz
%{_mandir}/man8/lvmconfig.8.gz
%{_mandir}/man8/lvm-dumpconfig.8.gz
%{_mandir}/man8/lvmchange.8.gz
%{_mandir}/man8/lvmconf.8.gz
@ -381,8 +402,24 @@ logical volumes, physical volumes, and volume groups.
%files python-libs
%{python_sitearch}/*
%package python3-libs
Summary: Python 3 module to access LVM
License: LGPLv2
Group: Development/Libraries
Provides: python3-lvm = %{version}-%{release}
Obsoletes: python-lvm < 2.02.98-2
Requires: %{name}-libs = %{version}-%{release}
%description python3-libs
Python 3 module to allow the creation and use of LVM
logical volumes, physical volumes, and volume groups.
%files python3-libs
%{python3_sitearch}/*
%endif
##############################################################################
# Cluster subpackage
# The 'clvm' OCF script to manage clvmd instance is part of resource-agents.
@ -533,7 +570,9 @@ for the kernel device-mapper.
%doc udev/12-dm-permissions.rules
%defattr(444,root,root,-)
%attr(555, -, -) %{_sbindir}/dmsetup
%attr(555, -, -) %{_sbindir}/blkdeactivate
%{_mandir}/man8/dmsetup.8.gz
%{_mandir}/man8/blkdeactivate.8.gz
%{_udevdir}/10-dm.rules
%{_udevdir}/13-dm-disk.rules
%{_udevdir}/95-dm-notify.rules
@ -645,6 +684,54 @@ the device-mapper event library.
%{_libdir}/pkgconfig/devmapper-event.pc
%changelog
* Mon May 04 2015 Peter Rajnoha <prajnoha@redhat.com> - 2.02.119-1
- New lvm2-python3-libs subpackage to provide Python 3 bindings for LVM2.
- New LVM_LOG_FILE_EPOCH, LVM_EXPECTED_EXIT_STATUS env vars. Man page to follow.
- Remove detailed content from lvm.conf man page: use lvmconfig instead.
- Generate complete config files with lvmconfig or 'make generate'.
- Also display info on deprecated config with lvmconfig --withcomments.
- Display version since which config is deprecated in lvmconfig --withversions.
- Add --showdeprecated to lvmconfig to also display deprecated settings.
- Hide deprecated settings in lvmconfig output for all types but current,diff.
- Introduce support for exit on idle feature in libdaemon
- Add --showunsupported to lvmconfig to also display unsupported settings.
- Display unsupported settings for lvmconfig --type current,diff only by default
- Honour lvmconfig --ignoreunsupported and --ignoreadvanced for all --type.
- Make python bindings usable with python3 (and compatible with 2.6 & 2.7).
- Add lvmconfig -l|--list as shortcut for lvmconfig --type list --withsummary.
- Add lvmconfig --type list to display plain list of configuration settings.
- Introduce lvmconfig as the preferred form of 'lvm dumpconfig'.
- Add lv_ancestors and lv_descendants reporting fields.
- Add --ignorelocal option to dumpconfig to ignore the local section.
- Close connection to lvmetad after fork.
- Make lvchange able to resume background pvmove polling again.
- Split pvmove update metadata fn in an initial one and a subsequent one.
- Refactor shared pvmove and lvconvert code into new _poll files.
- Add --unconfigured option to dumpconfig to print strings unconfigured.
- Add --withsummary option to dumpconfig to print first line - summary comment.
- Use number of device holders to help choose between duplicate PVs.
- Try to make lvmetad and non-lvmetad duplicate PV handling as similar as poss.
- Issue warnings about duplicate PVs discovered by lvmetad.
- Track alternative devices with matching PVIDs in lvmetad.
- Check for lvm binary in blkdeactivate and skip LVM processing if not present.
- Add --enable-halvm and --disable-halvm options to lvmconf script.
- Add --services, --mirrorservice and --startstopservices option to lvmconf.
- Use proper default value of global/use_lvmetad when processing lvmconf script.
- Respect allocation/cling_tag_list during intial contiguous allocation.
- Make changes persist with python addTag/removeTag.
- Set correct vgid when updating cache when writing PV metadata.
- More efficient clvmd singlenode locking emulation.
- Reject lvcreate -m with raid4/5/6 to avoid unexpected layout.
- Don't skip invalidation of cached orphans if vg write lck is held (2.02.118).
- Log relevant PV tags when using cling allocation.
- Fix selection to not match if using reserved value in criteria with >,<,>=,<.
- Fix selection to not match reserved values for size fields if using >,<,>=,<.
- Include uuid or device number in log message after ioctl failure.
- Add DM_INTERNAL_SUSPEND_FLAG to dm-ioctl.h.
- Move blkdeactivate script from lvm2 package to device-mapper subpackage.
- Install blkdeactivate script and its man page with make install_device-mapper.
* Tue Mar 24 2015 Peter Rajnoha <prajnoha@redhat.com> - 2.02.118-1
- Fix LV processing with selection to always do the selection on initial state.
- Store metadata size + checksum in lvmcache and add struct lvmcache_vgsummary.

View File

@ -1 +1 @@
27f028974e8f067a9791d685b4e0fa90 LVM2.2.02.118.tgz
93d15d76ab78fbcec4721c4b44284bbb LVM2.2.02.119.tgz

View File

@ -1 +1 @@
LVM2.2.02.118.tgz
LVM2.2.02.119.tgz