Merge branch 'master' into f14
lvm2.spec
This commit is contained in:
commit
3d7b66474e
11
.gitignore
vendored
11
.gitignore
vendored
@ -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
|
||||
|
@ -1,7 +0,0 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.2.1 (GNU/Linux)
|
||||
|
||||
iD8DBQBMbEwPIoGRwVZ+LBcRAraFAJ0diOCXQBvvtDzl5+TWfxx2FrziRgCg5+M9
|
||||
Pojrx52Fp+WwwkpcqURxWws=
|
||||
=Ru4y
|
||||
-----END PGP SIGNATURE-----
|
7
LVM2.2.02.84.tgz.asc
Normal file
7
LVM2.2.02.84.tgz.asc
Normal file
@ -0,0 +1,7 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.2.1 (GNU/Linux)
|
||||
|
||||
iD8DBQBNUoPBIoGRwVZ+LBcRArV5AJsEBiOr2+l+t75sCQFHjeI1qMz8yQCgnNWV
|
||||
KenZpjzUKHsOQRcXNIWDz4o=
|
||||
=OTJ3
|
||||
-----END PGP SIGNATURE-----
|
@ -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
|
2
lvm2-tmpfiles.conf
Normal file
2
lvm2-tmpfiles.conf
Normal file
@ -0,0 +1,2 @@
|
||||
D /var/lock/lvm 0700 root root -
|
||||
D /var/run/lvm 0700 root root -
|
228
lvm2.spec
228
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 <agk@redhat.com> - 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 <rel-eng@lists.fedoraproject.org> - 2.02.83-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
|
||||
|
||||
* Fri Feb 4 2011 Alasdair Kergon <agk@redhat.com> - 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 <agk@redhat.com> - 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<num> description.
|
||||
|
||||
* Mon Jan 17 2011 Alasdair Kergon <agk@redhat.com> - 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 <agk@redhat.com> - 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 <agk@redhat.com> - 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 <agk@redhat.com> - 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 <agk@redhat.com> - 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 <agk@redhat.com> - 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 <agk@redhat.com> - 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 <agk@redhat.com> - 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 <prajnoha@redhat.com> - 2.02.73-2
|
||||
- Add configure --with-default-data-alignment.
|
||||
- Update heuristic used for default and detected data alignment.
|
||||
|
2
sources
2
sources
@ -1 +1 @@
|
||||
ef975c33e224b3a2c057313d29718d91 LVM2.2.02.73.tgz
|
||||
8b4e0897ee48f02c0dff11940e44e23b LVM2.2.02.84.tgz
|
||||
|
Loading…
Reference in New Issue
Block a user