diff --git a/.gitignore b/.gitignore index ba87906..7982258 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,13 @@ LVM2.2.02.70.tgz LVM2.2.02.72.tgz +LVM2.2.02.73.tgz +/LVM2.2.02.74.tgz +/LVM2.2.02.75.tgz +/LVM2.2.02.76.tgz +/LVM2.2.02.77.tgz +/LVM2.2.02.78.tgz +/LVM2.2.02.79.tgz +/LVM2.2.02.81.tgz +/LVM2.2.02.82.tgz +/LVM2.2.02.83.tgz +/LVM2.2.02.84.tgz diff --git a/LVM2.2.02.73.tgz.asc b/LVM2.2.02.73.tgz.asc deleted file mode 100644 index f8de731..0000000 --- a/LVM2.2.02.73.tgz.asc +++ /dev/null @@ -1,7 +0,0 @@ ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1.2.1 (GNU/Linux) - -iD8DBQBMbEwPIoGRwVZ+LBcRAraFAJ0diOCXQBvvtDzl5+TWfxx2FrziRgCg5+M9 -Pojrx52Fp+WwwkpcqURxWws= -=Ru4y ------END PGP SIGNATURE----- diff --git a/LVM2.2.02.84.tgz.asc b/LVM2.2.02.84.tgz.asc new file mode 100644 index 0000000..4b587cc --- /dev/null +++ b/LVM2.2.02.84.tgz.asc @@ -0,0 +1,7 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.2.1 (GNU/Linux) + +iD8DBQBNUoPBIoGRwVZ+LBcRArV5AJsEBiOr2+l+t75sCQFHjeI1qMz8yQCgnNWV +KenZpjzUKHsOQRcXNIWDz4o= +=OTJ3 +-----END PGP SIGNATURE----- diff --git a/lvm2-2_02_74-default-data-alignment.patch b/lvm2-2_02_74-default-data-alignment.patch deleted file mode 100644 index 4a412b8..0000000 --- a/lvm2-2_02_74-default-data-alignment.patch +++ /dev/null @@ -1,368 +0,0 @@ - WHATS_NEW | 6 +++++ - configure | 20 ++++++++++++++++ - configure.in | 10 ++++++++ - doc/example.conf.in | 11 ++++++-- - lib/config/defaults.h | 1 + - lib/format_text/format-text.c | 20 +++++++++------ - lib/metadata/metadata.c | 48 ++++++++++++++++++++++++++------------ - lib/misc/configure.h.in | 3 ++ - test/t-pvcreate-operation-md.sh | 32 ++++++++++++++++++++++++- - 9 files changed, 123 insertions(+), 28 deletions(-) - -diff --git a/WHATS_NEW b/WHATS_NEW -index c63251f..90fd9d1 100644 ---- a/WHATS_NEW -+++ b/WHATS_NEW -@@ -1,3 +1,9 @@ -+ Version 2.02.74 - -+ ================================== -+ Add configure --with-default-data-alignment. -+ Update heuristic used for default and detected data alignment. -+ Add "devices/default_data_alignment" to lvm.conf. -+ - Version 2.02.73 - 18th August 2010 - ================================== - Fix potential for corruption during cluster mirror device failure. -diff --git a/configure b/configure -index 5ecb768..0e8e7e1 100755 ---- a/configure -+++ b/configure -@@ -694,6 +694,7 @@ DL_LIBS - DEVMAPPER - DEFAULT_RUN_DIR - DEFAULT_LOCK_DIR -+DEFAULT_DATA_ALIGNMENT - DEFAULT_CACHE_SUBDIR - DEFAULT_BACKUP_SUBDIR - DEFAULT_ARCHIVE_SUBDIR -@@ -872,6 +873,7 @@ with_default_archive_subdir - with_default_backup_subdir - with_default_cache_subdir - with_default_locking_dir -+with_default_data_alignment - with_interface - ' - ac_precious_vars='build_alias -@@ -1615,6 +1617,8 @@ Optional Packages: - default metadata cache subdir [cache] - --with-default-locking-dir=DIR - default locking directory [/var/lock/lvm] -+ --with-default-data-alignment=NUM -+ set the default data alignment in MiB [1] - --with-interface=IFACE choose kernel interface (ioctl) [ioctl] - - Some influential environment variables: -@@ -18080,6 +18084,21 @@ _ACEOF - - - ################################################################################ -+ -+# Check whether --with-default-data-alignment was given. -+if test "${with_default_data_alignment+set}" = set; then -+ withval=$with_default_data_alignment; DEFAULT_DATA_ALIGNMENT=$withval -+else -+ DEFAULT_DATA_ALIGNMENT=1 -+fi -+ -+ -+cat >>confdefs.h <<_ACEOF -+#define DEFAULT_DATA_ALIGNMENT $DEFAULT_DATA_ALIGNMENT -+_ACEOF -+ -+ -+################################################################################ - { $as_echo "$as_me:$LINENO: checking for kernel interface choice" >&5 - $as_echo_n "checking for kernel interface choice... " >&6; } - -@@ -18220,6 +18239,7 @@ LVM_LIBAPI=`echo "$VER" | $AWK -F '[()]' '{print $2}'` - - - -+ - ################################################################################ - 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/mirror/Makefile daemons/dmeventd/plugins/snapshot/Makefile doc/Makefile doc/example.conf include/.symlinks include/Makefile lib/Makefile lib/format1/Makefile lib/format_pool/Makefile lib/locking/Makefile lib/mirror/Makefile lib/replicator/Makefile lib/misc/lvm-version.h lib/snapshot/Makefile libdm/Makefile libdm/libdevmapper.pc liblvm/Makefile liblvm/liblvm2app.pc man/Makefile po/Makefile scripts/clvmd_init_red_hat scripts/cmirrord_init_red_hat scripts/lvm2_monitoring_init_red_hat scripts/Makefile test/Makefile test/api/Makefile tools/Makefile udev/Makefile unit-tests/datastruct/Makefile unit-tests/regex/Makefile unit-tests/mm/Makefile" - -diff --git a/configure.in b/configure.in -index 3c39151..18484f7 100644 ---- a/configure.in -+++ b/configure.in -@@ -1185,6 +1185,15 @@ AC_DEFINE_UNQUOTED(DEFAULT_LOCK_DIR, ["$DEFAULT_LOCK_DIR"], - [Name of default locking directory.]) - - ################################################################################ -+dnl -- Setup default data alignment -+AC_ARG_WITH(default-data-alignment, -+ AC_HELP_STRING([--with-default-data-alignment=NUM], -+ [set the default data alignment in MiB [[1]]]), -+ DEFAULT_DATA_ALIGNMENT=$withval, DEFAULT_DATA_ALIGNMENT=1) -+AC_DEFINE_UNQUOTED(DEFAULT_DATA_ALIGNMENT, [$DEFAULT_DATA_ALIGNMENT], -+ [Default data alignment.]) -+ -+################################################################################ - dnl -- which kernel interface to use (ioctl only) - AC_MSG_CHECKING(for kernel interface choice) - AC_ARG_WITH(interface, -@@ -1244,6 +1253,7 @@ AC_SUBST(DEFAULT_SYS_DIR) - AC_SUBST(DEFAULT_ARCHIVE_SUBDIR) - AC_SUBST(DEFAULT_BACKUP_SUBDIR) - AC_SUBST(DEFAULT_CACHE_SUBDIR) -+AC_SUBST(DEFAULT_DATA_ALIGNMENT) - AC_SUBST(DEFAULT_LOCK_DIR) - AC_SUBST(DEFAULT_RUN_DIR) - AC_SUBST(DEVMAPPER) -diff --git a/doc/example.conf.in b/doc/example.conf.in -index 7edae71..17fca05 100644 ---- a/doc/example.conf.in -+++ b/doc/example.conf.in -@@ -98,6 +98,10 @@ devices { - # 1 enables; 0 disables. - md_chunk_alignment = 1 - -+ # Default alignment of the start of a data area in MB. If set to 0, -+ # a value of 64KB will be used. Set to 1 for 1MiB, 2 for 2MiB, etc. -+ # default_data_alignment = @DEFAULT_DATA_ALIGNMENT@ -+ - # By default, the start of a PV's data area will be a multiple of - # the 'minimum_io_size' or 'optimal_io_size' exposed in sysfs. - # - minimum_io_size - the smallest request the device can perform -@@ -111,9 +115,9 @@ devices { - data_alignment_detection = 1 - - # Alignment (in KB) of start of data area when creating a new PV. -- # If a PV is placed directly upon an md device and md_chunk_alignment or -- # data_alignment_detection is enabled this parameter is ignored. -- # Set to 0 for the default alignment of 1MB or page size, if larger. -+ # md_chunk_alignment and data_alignment_detection are disabled if set. -+ # Set to 0 for the default alignment (see: data_alignment_default) -+ # or page size, if larger. - data_alignment = 0 - - # By default, the start of the PV's aligned data area will be shifted by -@@ -122,6 +126,7 @@ devices { - # windows partitioning will have an alignment_offset of 3584 bytes - # (sector 7 is the lowest aligned logical block, the 4KB sectors start - # at LBA -1, and consequently sector 63 is aligned on a 4KB boundary). -+ # But note that pvcreate --dataalignmentoffset will skip this detection. - # 1 enables; 0 disables. - data_alignment_offset_detection = 1 - -diff --git a/lib/config/defaults.h b/lib/config/defaults.h -index b6308f4..e4db65e 100644 ---- a/lib/config/defaults.h -+++ b/lib/config/defaults.h -@@ -17,6 +17,7 @@ - #define _LVM_DEFAULTS_H - - #define DEFAULT_PE_ALIGN 2048 -+#define DEFAULT_PE_ALIGN_OLD 128 - - #define DEFAULT_ARCHIVE_ENABLED 1 - #define DEFAULT_BACKUP_ENABLED 1 -diff --git a/lib/format_text/format-text.c b/lib/format_text/format-text.c -index c8cf89a..db5af2a 100644 ---- a/lib/format_text/format-text.c -+++ b/lib/format_text/format-text.c -@@ -1861,16 +1861,20 @@ static int _text_pv_setup(const struct format_type *fmt, - 0) * 2; - - if (set_pe_align(pv, data_alignment) != data_alignment && -- data_alignment) -- log_warn("WARNING: %s: Overriding data alignment to " -- "%lu sectors (requested %lu sectors)", -- pv_dev_name(pv), pv->pe_align, data_alignment); -+ data_alignment) { -+ log_error("%s: invalid data alignment of " -+ "%lu sectors (requested %lu sectors)", -+ pv_dev_name(pv), pv->pe_align, data_alignment); -+ return 0; -+ } - - if (set_pe_align_offset(pv, data_alignment_offset) != data_alignment_offset && -- data_alignment_offset) -- log_warn("WARNING: %s: Overriding data alignment offset to " -- "%lu sectors (requested %lu sectors)", -- pv_dev_name(pv), pv->pe_align_offset, data_alignment_offset); -+ data_alignment_offset) { -+ log_error("%s: invalid data alignment offset of " -+ "%lu sectors (requested %lu sectors)", -+ pv_dev_name(pv), pv->pe_align_offset, data_alignment_offset); -+ return 0; -+ } - - if (pv->pe_align < pv->pe_align_offset) { - log_error("%s: pe_align (%lu sectors) must not be less " -diff --git a/lib/metadata/metadata.c b/lib/metadata/metadata.c -index 6cd7793..c79f618 100644 ---- a/lib/metadata/metadata.c -+++ b/lib/metadata/metadata.c -@@ -62,23 +62,38 @@ static uint32_t _vg_bad_status_bits(const struct volume_group *vg, - const char _really_init[] = - "Really INITIALIZE physical volume \"%s\" of volume group \"%s\" [y/n]? "; - --static int _alignment_overrides_default(unsigned long data_alignment) -+static int _alignment_overrides_default(unsigned long data_alignment, -+ unsigned long default_pe_align) - { -- return data_alignment && (DEFAULT_PE_ALIGN % data_alignment); -+ return data_alignment && (default_pe_align % data_alignment); - } - - unsigned long set_pe_align(struct physical_volume *pv, unsigned long data_alignment) - { -- unsigned long temp_pe_align; -+ unsigned long default_pe_align, temp_pe_align; - - if (pv->pe_align) - goto out; - -- if (data_alignment) -+ if (data_alignment) { -+ /* Always use specified data_alignment */ - pv->pe_align = data_alignment; -+ goto out; -+ } -+ -+ default_pe_align = find_config_tree_int(pv->fmt->cmd, -+ "devices/default_data_alignment", -+ DEFAULT_DATA_ALIGNMENT); -+ -+ if (default_pe_align) -+ /* align on 1 MiB multiple */ -+ default_pe_align *= DEFAULT_PE_ALIGN; - else -- pv->pe_align = MAX((DEFAULT_PE_ALIGN << SECTOR_SHIFT), -- lvm_getpagesize()) >> SECTOR_SHIFT; -+ /* align on 64 KiB multiple (old default) */ -+ default_pe_align = DEFAULT_PE_ALIGN_OLD; -+ -+ pv->pe_align = MAX((default_pe_align << SECTOR_SHIFT), -+ lvm_getpagesize()) >> SECTOR_SHIFT; - - if (!pv->dev) - goto out; -@@ -89,8 +104,8 @@ unsigned long set_pe_align(struct physical_volume *pv, unsigned long data_alignm - if (find_config_tree_bool(pv->fmt->cmd, "devices/md_chunk_alignment", - DEFAULT_MD_CHUNK_ALIGNMENT)) { - temp_pe_align = dev_md_stripe_width(pv->fmt->cmd->sysfs_dir, pv->dev); -- if (_alignment_overrides_default(temp_pe_align)) -- pv->pe_align = temp_pe_align; -+ if (_alignment_overrides_default(temp_pe_align, default_pe_align)) -+ pv->pe_align = MAX(pv->pe_align, temp_pe_align); - } - - /* -@@ -104,18 +119,18 @@ unsigned long set_pe_align(struct physical_volume *pv, unsigned long data_alignm - "devices/data_alignment_detection", - DEFAULT_DATA_ALIGNMENT_DETECTION)) { - temp_pe_align = dev_minimum_io_size(pv->fmt->cmd->sysfs_dir, pv->dev); -- if (_alignment_overrides_default(temp_pe_align)) -- pv->pe_align = temp_pe_align; -+ if (_alignment_overrides_default(temp_pe_align, default_pe_align)) -+ pv->pe_align = MAX(pv->pe_align, temp_pe_align); - - temp_pe_align = dev_optimal_io_size(pv->fmt->cmd->sysfs_dir, pv->dev); -- if (_alignment_overrides_default(temp_pe_align)) -- pv->pe_align = temp_pe_align; -+ if (_alignment_overrides_default(temp_pe_align, default_pe_align)) -+ pv->pe_align = MAX(pv->pe_align, temp_pe_align); - } - -+out: - log_very_verbose("%s: Setting PE alignment to %lu sectors.", - dev_name(pv->dev), pv->pe_align); - --out: - return pv->pe_align; - } - -@@ -125,8 +140,11 @@ unsigned long set_pe_align_offset(struct physical_volume *pv, - if (pv->pe_align_offset) - goto out; - -- if (data_alignment_offset) -+ if (data_alignment_offset) { -+ /* Always use specified data_alignment_offset */ - pv->pe_align_offset = data_alignment_offset; -+ goto out; -+ } - - if (!pv->dev) - goto out; -@@ -142,10 +160,10 @@ unsigned long set_pe_align_offset(struct physical_volume *pv, - pv->pe_align_offset = MAX(pv->pe_align_offset, align_offset); - } - -+out: - log_very_verbose("%s: Setting PE alignment offset to %lu sectors.", - dev_name(pv->dev), pv->pe_align_offset); - --out: - return pv->pe_align_offset; - } - -diff --git a/lib/misc/configure.h.in b/lib/misc/configure.h.in -index 0161471..59b656d 100644 ---- a/lib/misc/configure.h.in -+++ b/lib/misc/configure.h.in -@@ -32,6 +32,9 @@ - /* Name of default metadata cache subdirectory. */ - #undef DEFAULT_CACHE_SUBDIR - -+/* Default data alignment. */ -+#undef DEFAULT_DATA_ALIGNMENT -+ - /* Name of default locking directory. */ - #undef DEFAULT_LOCK_DIR - -diff --git a/test/t-pvcreate-operation-md.sh b/test/t-pvcreate-operation-md.sh -index 41e3534..cab63a0 100644 ---- a/test/t-pvcreate-operation-md.sh -+++ b/test/t-pvcreate-operation-md.sh -@@ -41,13 +41,17 @@ cleanup_md() { - sleep 2 - rm -f $mddev - fi -+} -+ -+cleanup_md_and_teardown() { -+ cleanup_md - teardown - } - - # create 2 disk MD raid0 array (stripe_width=128K) - test -b "$mddev" && exit 200 --mdadm --create $mddev --auto=md --level 0 --raid-devices=2 --chunk 64 $dev1 $dev2 --trap 'aux cleanup_md' EXIT # cleanup this MD device at the end of the test -+mdadm --create --metadata=1.0 $mddev --auto=md --level 0 --raid-devices=2 --chunk 64 $dev1 $dev2 -+trap 'aux cleanup_md_and_teardown' EXIT # cleanup this MD device at the end of the test - test -b "$mddev" || exit 200 - - # Test alignment of PV on MD without any MD-aware or topology-aware detection -@@ -113,3 +117,27 @@ EOF - pvremove $mddev_p - fi - fi -+ -+# Test newer topology-aware alignment detection w/ --dataalignment override -+if [ $linux_minor -ge 33 ]; then -+ cleanup_md -+ pvcreate -f $dev1 -+ pvcreate -f $dev2 -+ -+ # create 2 disk MD raid0 array (stripe_width=2M) -+ test -b "$mddev" && exit 200 -+ mdadm --create --metadata=1.0 $mddev --auto=md --level 0 --raid-devices=2 --chunk 1024 $dev1 $dev2 -+ test -b "$mddev" || exit 200 -+ -+ # optimal_io_size=2097152, minimum_io_size=1048576 -+ pv_align="2.00m" -+ pvcreate --metadatasize 128k \ -+ --config 'devices { md_chunk_alignment=0 }' $mddev -+ check_pv_field_ $mddev pe_start $pv_align -+ -+ # now verify pe_start alignment override using --dataalignment -+ pv_align="192.00k" -+ pvcreate --dataalignment 64k --metadatasize 128k \ -+ --config 'devices { md_chunk_alignment=0 }' $mddev -+ check_pv_field_ $mddev pe_start $pv_align -+fi diff --git a/lvm2-tmpfiles.conf b/lvm2-tmpfiles.conf new file mode 100644 index 0000000..6e76fcb --- /dev/null +++ b/lvm2-tmpfiles.conf @@ -0,0 +1,2 @@ +D /var/lock/lvm 0700 root root - +D /var/run/lvm 0700 root root - diff --git a/lvm2.spec b/lvm2.spec index ec7136b..57db938 100644 --- a/lvm2.spec +++ b/lvm2.spec @@ -1,4 +1,4 @@ -%define device_mapper_version 1.02.54 +%define device_mapper_version 1.02.63 %define enable_cluster 1 %if "%{fedora}" == "12" @@ -29,15 +29,14 @@ Summary: Userland logical volume management tools Name: lvm2 -Version: 2.02.73 -Release: 3%{?dist} +Version: 2.02.84 +Release: 1%{?dist} License: GPLv2 Group: System Environment/Base URL: http://sources.redhat.com/lvm2 Source0: ftp://sources.redhat.com/pub/lvm2/LVM2.%{version}.tgz +Source1: %{name}-tmpfiles.conf Patch0: lvm2-set-default-preferred_names.patch -Patch1: lvm2-2_02_74-default-data-alignment.patch -Patch2: lvm2-2_02_75-support-uuid-rename.patch BuildRequires: libselinux-devel >= 1.30.19-4, libsepol-devel BuildRequires: ncurses-devel @@ -53,6 +52,7 @@ BuildRequires: pkgconfig BuildRequires: libudev-devel %endif Requires: %{name}-libs = %{version}-%{release} +Requires: initscripts Requires: module-init-tools Requires(post): chkconfig Requires(preun): chkconfig @@ -68,8 +68,6 @@ or more physical volumes and creating one or more logical volumes %prep %setup -q -n LVM2.%{version} %patch0 -p1 -b preferred_names -%patch1 -p1 -b data_alignment -%patch2 -p1 -b uuid_rename %build %define _exec_prefix "" @@ -91,6 +89,8 @@ make %{?_smp_mflags} make install DESTDIR=$RPM_BUILD_ROOT make install_system_dirs DESTDIR=$RPM_BUILD_ROOT make install_initscripts DESTDIR=$RPM_BUILD_ROOT +mkdir -p %{buildroot}%{_sysconfdir}/tmpfiles.d +install -m 0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/tmpfiles.d/%{name}.conf %clean rm -rf $RPM_BUILD_ROOT @@ -206,15 +206,16 @@ fi %if %{enable_udev} %{_udevdir}/11-dm-lvm.rules %endif -%dir /etc/lvm -%ghost /etc/lvm/cache/.cache -%config(noreplace) %verify(not md5 mtime size) /etc/lvm/lvm.conf -%dir /etc/lvm/backup -%dir /etc/lvm/cache -%dir /etc/lvm/archive -%dir /var/lock/lvm -%dir /var/run/lvm -/etc/rc.d/init.d/lvm2-monitor +%dir %{_sysconfdir}/lvm +%ghost %{_sysconfdir}/lvm/cache/.cache +%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lvm/lvm.conf +%dir %{_sysconfdir}/lvm/backup +%dir %{_sysconfdir}/lvm/cache +%dir %{_sysconfdir}/lvm/archive +%dir %{_localstatedir}/lock/lvm +%dir %{_localstatedir}/run/lvm +%{_sysconfdir}/rc.d/init.d/lvm2-monitor +%config(noreplace) %{_sysconfdir}/tmpfiles.d/%{name}.conf ############################################################################## # Library and Development subpackages @@ -300,7 +301,9 @@ fi %defattr(-,root,root,-) %attr(755,root,root) /usr/sbin/clvmd %{_mandir}/man8/clvmd.8.gz -/etc/rc.d/init.d/clvmd +%{_sysconfdir}/rc.d/init.d/clvmd +#%ghost %{_localstatedir}/run/lvm/clvmd.sock +#%ghost %{_localstatedir}/run/clvmd.pid %endif @@ -333,7 +336,8 @@ fi %defattr(-,root,root,-) %attr(755,root,root) /usr/sbin/cmirrord %{_mandir}/man8/cmirrord.8.gz -/etc/rc.d/init.d/cmirrord +%{_sysconfdir}/rc.d/init.d/cmirrord +#%ghost %{_localstatedir}/run/cmirrord.pid %endif @@ -428,6 +432,7 @@ of device-mapper devices. %defattr(-,root,root,-) %{_sbindir}/dmeventd %{_mandir}/man8/dmeventd.8.gz +#%ghost %{_localstatedir}/run/dmeventd.pid %package -n device-mapper-event-libs Summary: Device-mapper event daemon shared library @@ -446,6 +451,8 @@ libdevmapper-event. %files -n device-mapper-event-libs %attr(755,root,root) %{_libdir}/libdevmapper-event.so.* +#%ghost %{_localstatedir}/run/dmeventd-client +#%ghost %{_localstatedir}/run/dmeventd-server %package -n device-mapper-event-devel Summary: Development libraries and headers for the device-mapper event daemon @@ -468,13 +475,196 @@ the device-mapper event library. %changelog +* Wed Feb 9 2011 Alasdair Kergon - 2.02.84-1 +- Fix big-endian CRC32 checksumming broken since 2.02.75. If affected, + ensure metadata backups in /etc/lvm/backup are up-to-date (vgcfgbackup) + then after updating to 2.02.84 restore metadata from them (using pvcreate + with -Zn --restorefile and -u if PVs can no longer be seen, then + vgcfgrestore -f). +- Reinstate libdevmapper DEBUG_MEM support. (Removed in 1.02.62.) + +* Tue Feb 08 2011 Fedora Release Engineering - 2.02.83-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Fri Feb 4 2011 Alasdair Kergon - 2.02.83-1 +- Allow exclusive activation of snapshots in a cluster. +- Don't lose LV exclusive lock state when suspending clustered devices. +- Fix fs operation stack handling when multiple operations on same device. +- Increase hash table sizes to 1024 LV names and 64 PV uuids. +- When setting up mda wipe first 4k of it as was intended. +- Remove unneeded checks for open_count in lv_info(). +- Synchronize with udev before checking open_count in lv_info(). +- Add "dmsetup ls --tree" output to lvmdump. +- Fix udev synchronization with no-locking --sysinit (2.02.80). +- Improve man page style consistency for pvcreate, pvremove, pvresize, pvscan. +- Avoid rebuilding of uuid validation table. +- Improve lvcreate error text from insufficient "extents" to "free space". +- Always use O_DIRECT when opening block devices to check for partitioning. +- Move creation of device nodes from 'create' to 'resume'. +- Add --addnodeonresume and --addnodeoncreate options to dmsetup. +- Add dm_task_set_add_node to libdevmapper to control dev node creation time. +- Add dm_task_secure_data to libdevmapper to wipe ioctl buffers in kernel. +- Log debug message when expected uevent is not generated. +- Set DM_UDEV_DISABLE_OTHER_RULES_FLAG for suspended DM devices in udev rules. +- Begin a new pool object for each row in _output_as_rows() correctly. + +* Mon Jan 24 2011 Alasdair Kergon - 2.02.82-2 +- Bring lvscan man page up-to-date. +- Fix lvchange --test to exit cleanly. +- Add change_tag to toollib. +- Allow multiple pvchange command line options to be specified together. +- Do not fail pvmove polling if another process cleaned up first. +- Avoid clvmd incrementing dlm lockspace reference count more than once. +- Add -f (don't fork) option to clvmd and fix clvmd -d description. + +* Mon Jan 17 2011 Alasdair Kergon - 2.02.81-1 +- Add disk to allowed mirrored log type conversions. +- Accept fusion fio in device type filter. +- Speed up command processing by caching resolved config tree. +- Use same dm cookie for consecutive dm ops in same VG to reduce udev waits. +- Do not scan devices in dev_reset_error_count() when forking. +- Skip unnecessary LOCK_NULL unlock call during volume deactivation. +- Skip fs_unlock when calling exec_cmd within activation code (for modprobe). +- Replace fs_unlock by sync_local_dev_names to notify local clvmd. (2.02.80) +- Fix wrongly paired unlocking of VG_GLOBAL in pvchange. (2.02.66) +- Return 0 from cmirrord initscript 'start' if daemon is already running. +- Add DM_COOKIE_AUTO_CREATE to libdevmapper.h. +- Improve general lvconvert man page description. +- Detect NULL handle in get_property(). +- Fix memory leak in persistent filter creation error path. +- Check for errors setting up dm_task struct in _setup_task(). +- Fail polldaemon creation when lvmcache_init() fails. +- Return PERCENT_INVALID for errors in _copy_percent() and _snap_percent(). +- Detect errors from dm_task_set calls in _get_device_info (dmeventd). +- Fix memory leak in debug mode of restart_clvmd() error path. +- Log error message for pthread_join() failure in clvmd. +- Use tmpfiles.d/lvm2.conf to create /var/lock/lvm and /var/run/lvm at boot. +- Require initscripts for tmpfiles.d/lvm2.conf. + +* Tue Dec 21 2010 Alasdair Kergon - 2.02.79-1 +- Create /var/run/lvm directory during clvmd initialisation if missing. +- Avoid revalidating the label cache immediately after scanning. +- Support scanning for a single VG in independent mdas. +- Don't skip full scan when independent mdas are present even if memlock is set. +- Add copy_percent and snap_percent to liblvm. +- Add new dm_prepare_selinux_context fn to libdevmapper and use it throughout. +- Enhance vg_validate to ensure integrity of LV and PV structs referenced. +- Enhance vg_validate to check composition of pvmove LVs. +- Avoid writing to freed memory in vg_release. (2.02.78) +- Add missing test for reallocation error in _find_parallel_space(). +- Add checks for allocation errors in config node cloning. +- Fix error path if regex engine cannot be created in _build_matcher(). +- Check read() and close() results in _get_cmdline(). +- Fix NULL pointer check in error path in clvmd do_command(). (2.02.78) +- Check for unlink failure in remove_lockfile() in dmeventd. +- Use dm_free for dm_malloc-ed areas in _clog_ctr/_clog_dtr in cmirrord. +- Change dm_regex_create() API to accept const char * const *patterns. + +* Mon Dec 6 2010 Alasdair Kergon - 2.02.78-1 +- Miscellaneous error path corrections and minor leaks fixed. +- Avoid misleading PV missing warnings in vgextend --restoremissing. +- Ignore unrecognised allocation policy found in metadata instead of aborting. +- Disallow lvconvert ops that both allocate & free supplied PEs in a single cmd. +- Fix liblvm seg_size to give bytes not sectors. +- Add functions to look up LV/PV by name/uuid to liblvm. +- Suppress 'No PV label' message when removing several PVs without mdas. +- Fix default /etc/lvm permissions to be 0755. (2.02.66) + +* Mon Nov 22 2010 Alasdair Kergon - 2.02.77-1 +- Add PV and LV segment types and functions to liblvm. +- Add set_property functions to liblvm. +- Remove tag length restriction and allow / = ! : # & characters. +- Support repetition of --addtag and --deltag arguments. +- Add infrastructure for specific cmdline arguments to be repeated in groups. +- Fix fsadm no longer to require '-f' to resize an unmounted filesystem. +- Fix fsadm to detect mounted filesystems on older systems. (2.0.75) +- Extend cling allocation policy to recognise PV tags (cling_by_tags). +- Add allocation/cling_tag_list to lvm.conf. + +* Tue Nov 9 2010 Alasdair Kergon - 2.02.76-1 +- Clarify error messages when activation fails due to activation filter use. +- Fix handling of online filesystem resize (using new fsadm return code). +- Modify fsadm to return different status code for check of mounted filesystem. +- Add DIAGNOSTICS section to fsadm man page. +- Update VG metadata only once in vgchange when making multiple changes. +- Allow independent vgchange arguments to be used together. +- Fix vgchange to process -a, --refresh, --monitor and --poll like lvchange. +- Add dmeventd -R to restart dmeventd without losing monitoring state. (1.02.56) +- Automatically unmount invalidated snapshots in dmeventd. +- Add lvm2app functions to query any pv, vg, or lv property / report field. +- Fix a deadlock caused by double close in clvmd. +- Fix NULL pointer dereference on too-large MDA error path in _vg_read_raw_area. +- Fix regex optimiser not to ignore RHS of OR nodes in _find_leftmost_common. +- Fix memory leak of field_id in _output_field function. +- Allocate buffer for reporting functions dynamically to support long outputs. + +* Mon Oct 25 2010 Alasdair Kergon - 2.02.75-1 +- Fix pthread mutex usage deadlock in clvmd. +- Avoid segfault by limiting partial mode for lvm1 metadata. (2.02.74) +- Skip dm devices in scan if they contain only error targets or are empty. +- Don't take write lock in vgchange --refresh, --poll or --monitor. +- Fix hang when repairing a mirrored-log that had both devs fail. +- Speed up unquoting of quoted double quotes and backslashes. +- Speed up CRC32 calculations by using a larger lookup table. +- Implement dmeventd -R to restart without state loss. +- Add --setuuid to dmsetup rename. +- Add global/metadata_read_only to use unrepaired metadata in read-only cmds. +- Automatically extend snapshots with dmeventd according to policy in lvm.conf. +- Add activation/snapshot_autoextend_threshold/percent to lvm.conf. +- Add devices/disable_after_error_count config to limit access to failing devs. +- Implement vgextend --restoremissing to reinstate missing devs that return. +- Read whole /proc/self/maps file before working with maps entries. +- Convey need for snapshot-merge target in lvconvert error message and man page. +- Give correct error message when creating a too-small snapshot. +- Make lvconvert respect --yes and --force when converting an inactive log. +- Better support of noninteractive shell execution of fsadm. +- Fix usage of --yes flag for ReiserFS resize in fsadm. +- Fix detection of mounted filesystems for fsadm when udev is used. +- Fix assignment of default value to LVM variable in fsadm. +- Fix support for --yes flag for fsadm. +- Do not execute lvresize from fsadm --dry-run. +- Fix fsadm return error code from user's break action. +- Return const pointer from dm_basename() in libdevmapper. +- Add dm_zalloc and use it and dm_pool_zalloc throughout. +- Add dm_task_set_newuuid to set uuid of mapped device post-creation. +- Fix missing variable initialization in cluster_send() function from cmirrord. +- Fix pointer for VG name in _pv_resize_single error code path. +- Fix vg_read memory leak with directory-based metadata. +- Fix memory leak of config_tree in reinitialization code path. +- Fix pool destruction order in dmeventd_lvm2_exit() to avoid leak debug mesg. +- Remove dependency on libm by replacing floor() by an integer-based algorithm. +- Refactor and add 'get' functions for pv, vg and lv properties/fields. +- Add pv_get_property and create generic internal _get_property function. +- Make generic GET_*_PROPERTY_FN macros with secondary macro for vg, pv & lv. + * Fri Oct 15 2010 Alasdair Kergon - 2.02.73-3 - Add --setuuid to dmsetup rename. - Add dm_task_set_newuuid to set uuid of mapped device post-creation. -* Wed Sep 29 2010 jkeating - 2.02.73-2.1 +* Wed Sep 29 2010 jkeating - 2.02.74-2 - Rebuilt for gcc bug 634757 +* Fri Sep 24 2010 Alasdair Kergon - 2.02.74-1 +- Fix the way regions are marked complete to avoid slow --nosync cmirror I/O. +- Add DM_REPORT_FIELD_TYPE_ID_LEN to libdevmapper.h. +- Allow : and @ to be escaped with \ in device names of PVs. +- Avoid stack corruption when reading in large metadata. +- Fix partial mode operations for lvm1 metadata format. +- Track recursive filter iteration to avoid refreshing while in use. (2.02.56) +- Allocate buffer for metadata tags dynamically to remove 4k limit. +- Add random suffix to archive file names to prevent races when being created. +- Reinitialize archive and backup handling on toolcontext refresh. +- Make poll_mirror_progress report PROGRESS_CHECK_FAILED if LV is not a mirror. +- Like mirrors, don't scan origins if ignore_suspended_devices() is set. +- Automatically generate tailored LSB Requires-Start for clvmd init script. +- Fix return code of pvmove --abort PV. +- Fix pvmove --abort to remove even for empty pvmove LV. +- Add implementation for simple numeric 'get' property functions. +- Simplify MD/swap signature detection in pvcreate and allow aborting. +- Allow --yes to be used without --force mode. +- Fix file descriptor leak in swap signature detection error path. +- Detect and allow abort in pvcreate if LUKS signature is detected. + * Wed Aug 25 2010 Peter Rajnoha - 2.02.73-2 - Add configure --with-default-data-alignment. - Update heuristic used for default and detected data alignment. diff --git a/sources b/sources index d33297e..f6ed598 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -ef975c33e224b3a2c057313d29718d91 LVM2.2.02.73.tgz +8b4e0897ee48f02c0dff11940e44e23b LVM2.2.02.84.tgz diff --git a/upstream b/upstream index ab6f21f..a7b3557 100644 --- a/upstream +++ b/upstream @@ -1 +1 @@ -LVM2.2.02.73.tgz +LVM2.2.02.84.tgz