diff --git a/lvm2-2_02_60-update.patch b/lvm2-2_02_60-update.patch new file mode 100644 index 0000000..0fa7b5d --- /dev/null +++ b/lvm2-2_02_60-update.patch @@ -0,0 +1,282 @@ +Index: VERSION +=================================================================== +RCS file: /cvs/lvm2/LVM2/VERSION,v +retrieving revision 1.222 +retrieving revision 1.223 +diff -u -r1.222 -r1.223 +--- a/VERSION 21 Jan 2010 23:55:17 -0000 1.222 ++++ b/VERSION 22 Jan 2010 01:09:09 -0000 1.223 +@@ -1 +1 @@ +-2.02.59(1) (2010-01-21) ++2.02.59(1)-rh (2010-01-22) +Index: VERSION_DM +=================================================================== +RCS file: /cvs/lvm2/LVM2/VERSION_DM,v +retrieving revision 1.34 +retrieving revision 1.35 +diff -u -r1.34 -r1.35 +--- a/VERSION_DM 21 Jan 2010 23:55:17 -0000 1.34 ++++ b/VERSION_DM 22 Jan 2010 01:09:09 -0000 1.35 +@@ -1 +1 @@ +-1.02.43 (2010-01-21) ++1.02.43-rh (2010-01-22) +Index: WHATS_NEW +=================================================================== +RCS file: /cvs/lvm2/LVM2/WHATS_NEW,v +retrieving revision 1.1400 +retrieving revision 1.1402 +diff -u -r1.1400 -r1.1402 +--- a/WHATS_NEW 21 Jan 2010 23:55:17 -0000 1.1400 ++++ b/WHATS_NEW 22 Jan 2010 09:45:29 -0000 1.1402 +@@ -1,3 +1,8 @@ ++Version 2.02.60 ++=================================== ++ FIXME: SEVERAL ENTRIES MISSING HERE (BUG FIXES) ++ Fix failed locking messages to be more descriptive. ++ + Version 2.02.59 - 21st January 2010 + =================================== + Add libdevmapper-event-lvm2.so to serialise dmeventd plugin liblvm2cmd use. +Index: WHATS_NEW_DM +=================================================================== +RCS file: /cvs/lvm2/LVM2/WHATS_NEW_DM,v +retrieving revision 1.339 +retrieving revision 1.340 +diff -u -r1.339 -r1.340 +--- a/WHATS_NEW_DM 21 Jan 2010 23:55:17 -0000 1.339 ++++ b/WHATS_NEW_DM 22 Jan 2010 01:09:09 -0000 1.340 +@@ -1,3 +1,6 @@ ++Version 1.02.44 ++=================================== ++ + Version 1.02.43 - 21st January 2010 + =================================== + Remove bitset, hash and pool headers superceded by libdevmapper.h. +Index: make.tmpl.in +=================================================================== +RCS file: /cvs/lvm2/LVM2/make.tmpl.in,v +retrieving revision 1.74 +retrieving revision 1.75 +diff -u -r1.74 -r1.75 +--- a/make.tmpl.in 19 Jan 2010 01:10:46 -0000 1.74 ++++ b/make.tmpl.in 22 Jan 2010 13:20:32 -0000 1.75 +@@ -78,7 +78,10 @@ + ifeq ("@DEBUG@", "yes") + CFLAGS += -g -fno-omit-frame-pointer + DEFS += -DDEBUG +- DEFS += -DDEBUG_MEM ++ # memory debugging is not thread-safe yet ++ ifneq ("@DMEVENTD@", "yes") ++ DEFS += -DDEBUG_MEM ++ endif + endif + + ifeq ("@INTL@", "yes") +Index: daemons/dmeventd/plugins/lvm2/.exported_symbols +=================================================================== +RCS file: /cvs/lvm2/LVM2/daemons/dmeventd/plugins/lvm2/.exported_symbols,v +retrieving revision 1.1 +retrieving revision 1.2 +diff -u -r1.1 -r1.2 +--- a/daemons/dmeventd/plugins/lvm2/.exported_symbols 21 Jan 2010 22:15:46 -0000 1.1 ++++ b/daemons/dmeventd/plugins/lvm2/.exported_symbols 22 Jan 2010 12:38:16 -0000 1.2 +@@ -1,6 +1,6 @@ +-init_lvm +-fini_lvm +-lock_lvm +-unlock_lvm +-lvm_pool +-lvm_handle ++dmeventd_lvm2_init ++dmeventd_lvm2_exit ++dmeventd_lvm2_lock ++dmeventd_lvm2_unlock ++dmeventd_lvm2_pool ++dmeventd_lvm2_run +Index: daemons/dmeventd/plugins/mirror/dmeventd_mirror.c +=================================================================== +RCS file: /cvs/lvm2/LVM2/daemons/dmeventd/plugins/mirror/dmeventd_mirror.c,v +retrieving revision 1.30 +retrieving revision 1.31 +diff -u -r1.30 -r1.31 +--- a/daemons/dmeventd/plugins/mirror/dmeventd_mirror.c 21 Jan 2010 22:15:46 -0000 1.30 ++++ b/daemons/dmeventd/plugins/mirror/dmeventd_mirror.c 22 Jan 2010 12:48:58 -0000 1.31 +@@ -225,8 +225,9 @@ + int minor __attribute((unused)), + void **unused __attribute((unused))) + { ++ int r = dmeventd_lvm2_init(); + syslog(LOG_INFO, "Monitoring mirror device %s for events", device); +- return dmeventd_lvm2_init(); ++ return r; + } + + int unregister_device(const char *device, +Index: daemons/dmeventd/plugins/snapshot/dmeventd_snapshot.c +=================================================================== +RCS file: /cvs/lvm2/LVM2/daemons/dmeventd/plugins/snapshot/dmeventd_snapshot.c,v +retrieving revision 1.6 +retrieving revision 1.7 +diff -u -r1.6 -r1.7 +--- a/daemons/dmeventd/plugins/snapshot/dmeventd_snapshot.c 22 Jan 2010 00:18:37 -0000 1.6 ++++ b/daemons/dmeventd/plugins/snapshot/dmeventd_snapshot.c 22 Jan 2010 12:48:58 -0000 1.7 +@@ -120,11 +120,12 @@ + void **private) + { + int *percent_warning = (int*)private; ++ int r = dmeventd_lvm2_init(); + + *percent_warning = WARNING_THRESH; /* Print warning if snapshot is full */ + + syslog(LOG_INFO, "Monitoring snapshot %s\n", device); +- return dmeventd_lvm2_init(); ++ return r; + } + + int unregister_device(const char *device, +Index: lib/activate/dev_manager.c +=================================================================== +RCS file: /cvs/lvm2/LVM2/lib/activate/dev_manager.c,v +retrieving revision 1.175 +retrieving revision 1.176 +diff -u -r1.175 -r1.176 +--- a/lib/activate/dev_manager.c 15 Jan 2010 22:58:25 -0000 1.175 ++++ b/lib/activate/dev_manager.c 22 Jan 2010 13:28:54 -0000 1.176 +@@ -327,7 +327,6 @@ + return 0; + } + +-/* FIXME Is there anything simpler to check for instead? */ + static int _lv_has_target_type(struct dev_manager *dm, + struct logical_volume *lv, + const char *layer, +@@ -363,8 +362,7 @@ + &type, ¶ms); + if (type && strncmp(type, target_type, + strlen(target_type)) == 0) { +- /* FIXME Why the inactive test? */ +- if (info.live_table && !info.inactive_table) ++ if (info.live_table) + r = 1; + break; + } +@@ -1141,6 +1139,7 @@ + 0, 1, 0, &dinfo, NULL) && dinfo.open_count) || + (dev_manager_info(dm->mem, NULL, find_merging_cow(lv)->cow, + 0, 1, 0, &dinfo, NULL) && dinfo.open_count)) { ++ /* FIXME Is there anything simpler to check for instead? */ + if (!_lv_has_target_type(dm, lv, NULL, "snapshot-merge")) + clear_snapshot_merge(lv); + } +Index: lib/locking/locking.c +=================================================================== +RCS file: /cvs/lvm2/LVM2/lib/locking/locking.c,v +retrieving revision 1.72 +retrieving revision 1.73 +diff -u -r1.72 -r1.73 +--- a/lib/locking/locking.c 13 Jan 2010 17:40:17 -0000 1.72 ++++ b/lib/locking/locking.c 22 Jan 2010 09:45:29 -0000 1.73 +@@ -224,7 +224,7 @@ + + _blocking_supported = find_config_tree_int(cmd, + "global/wait_for_locks", DEFAULT_WAIT_FOR_LOCKS); +- ++ + switch (type) { + case 0: + init_no_locking(&_locking, cmd); +@@ -236,8 +236,10 @@ + log_very_verbose("%sFile-based locking selected.", + _blocking_supported ? "" : "Non-blocking "); + +- if (!init_file_locking(&_locking, cmd)) ++ if (!init_file_locking(&_locking, cmd)) { ++ log_error("File-based locking initialisation failed."); + break; ++ } + return 1; + + #ifdef HAVE_LIBDL +@@ -249,8 +251,10 @@ + } + if (!find_config_tree_int(cmd, "locking/fallback_to_clustered_locking", + find_config_tree_int(cmd, "global/fallback_to_clustered_locking", +- DEFAULT_FALLBACK_TO_CLUSTERED_LOCKING))) ++ DEFAULT_FALLBACK_TO_CLUSTERED_LOCKING))) { ++ log_error("External locking initialisation failed."); + break; ++ } + #endif + + #ifdef CLUSTER_LOCKING_INTERNAL +@@ -259,8 +263,10 @@ + + case 3: + log_very_verbose("Cluster locking selected."); +- if (!init_cluster_locking(&_locking, cmd)) ++ if (!init_cluster_locking(&_locking, cmd)) { ++ log_error("Internal cluster locking initialisation failed."); + break; ++ } + return 1; + #endif + +@@ -285,6 +291,8 @@ + "be inaccessible."); + if (init_file_locking(&_locking, cmd)) + return 1; ++ else ++ log_error("File-based locking initialisation failed."); + } + + if (!ignorelockingfailure()) +Index: lib/locking/no_locking.c +=================================================================== +RCS file: /cvs/lvm2/LVM2/lib/locking/no_locking.c,v +retrieving revision 1.20 +retrieving revision 1.21 +diff -u -r1.20 -r1.21 +--- a/lib/locking/no_locking.c 11 Dec 2009 13:16:38 -0000 1.20 ++++ b/lib/locking/no_locking.c 22 Jan 2010 09:45:29 -0000 1.21 +@@ -72,7 +72,7 @@ + (flags & LCK_SCOPE_MASK) == LCK_VG && + !(flags & LCK_CACHE) && + strcmp(resource, VG_GLOBAL)) { +- log_error("Write locks are prohibited with --ignorelockingfailure."); ++ log_error("Write locks are prohibited with read-only locking."); + return 0; + } + +Index: liblvm/lvm_base.c +=================================================================== +RCS file: /cvs/lvm2/LVM2/liblvm/lvm_base.c,v +retrieving revision 1.13 +retrieving revision 1.14 +diff -u -r1.13 -r1.14 +--- a/liblvm/lvm_base.c 29 Jul 2009 18:38:27 -0000 1.13 ++++ b/liblvm/lvm_base.c 22 Jan 2010 09:45:29 -0000 1.14 +@@ -51,7 +51,6 @@ + /* initialize locking */ + if (!init_locking(-1, cmd)) { + /* FIXME: use EAGAIN as error code here */ +- log_error("Locking initialisation failed."); + lvm_quit((lvm_t) cmd); + return NULL; + } +Index: tools/lvmcmdline.c +=================================================================== +RCS file: /cvs/lvm2/LVM2/tools/lvmcmdline.c,v +retrieving revision 1.112 +retrieving revision 1.113 +diff -u -r1.112 -r1.113 +--- a/tools/lvmcmdline.c 21 Jan 2010 13:41:39 -0000 1.112 ++++ b/tools/lvmcmdline.c 22 Jan 2010 09:45:29 -0000 1.113 +@@ -1027,8 +1027,6 @@ + locking_type = -1; + + if (!init_locking(locking_type, cmd)) { +- log_error("Locking type %d initialisation failed.", +- locking_type); + ret = ECMD_FAILED; + goto out; + } diff --git a/lvm2.spec b/lvm2.spec index 80fb400..3bd7224 100644 --- a/lvm2.spec +++ b/lvm2.spec @@ -9,12 +9,13 @@ Summary: Userland logical volume management tools Name: lvm2 Version: 2.02.59 -Release: 2%{?dist} +Release: 3%{?dist} License: GPLv2 Group: System Environment/Base URL: http://sources.redhat.com/lvm2 Source0: ftp://sources.redhat.com/pub/lvm2/LVM2.%{version}.tgz Patch0: lvm2-set-default-preferred_names.patch +Patch1: lvm2-2_02_60-update.patch BuildRequires: libselinux-devel >= 1.30.19-4, libsepol-devel BuildRequires: ncurses-devel @@ -45,6 +46,7 @@ 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 next_release %build %define _exec_prefix / @@ -425,6 +427,10 @@ the device-mapper event library. %changelog +* Fri Jan 22 2010 Alasdair Kergon - 2.02.59-3 +- Other as-yet-undocumented upstream fixes. +- Fix failed locking messages to be more descriptive. + * Fri Jan 22 2010 Fabio M. Di Nitto - 2.02.59-2 - Drop duplicated BuildRequires on openaislib-devel. - Drop Requires on clusterlib for cmirror subpackage.