From 1e9a023573f7d2186b93f274b4c73132c4aa55e5baca7b79b7160d93953508c7 Mon Sep 17 00:00:00 2001 From: OBS User unknown Date: Fri, 11 Jul 2008 21:10:33 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/lvm2?expand=0&rev=15 --- LVM2.2.02.33.tar.bz2 | 3 - LVM2.2.02.38.tar.bz2 | 3 + clvmd-fix-node-hash.diff | 82 ------------------ clvmd-node-number-fix.diff | 11 --- clvmd-openais-sync.diff | 168 ------------------------------------- enable-clvmd.patch | 2 +- lvm2.changes | 30 +++++++ lvm2.spec | 41 ++++++--- 8 files changed, 65 insertions(+), 275 deletions(-) delete mode 100644 LVM2.2.02.33.tar.bz2 create mode 100644 LVM2.2.02.38.tar.bz2 delete mode 100644 clvmd-fix-node-hash.diff delete mode 100644 clvmd-node-number-fix.diff delete mode 100644 clvmd-openais-sync.diff diff --git a/LVM2.2.02.33.tar.bz2 b/LVM2.2.02.33.tar.bz2 deleted file mode 100644 index 437fdc5..0000000 --- a/LVM2.2.02.33.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0d0a8813b66eb2458ef158027d80fb4ffffe7fe672388bfcd87e30c20647bb2f -size 443634 diff --git a/LVM2.2.02.38.tar.bz2 b/LVM2.2.02.38.tar.bz2 new file mode 100644 index 0000000..b1f881c --- /dev/null +++ b/LVM2.2.02.38.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2eb48e5ee80662aa122948da996576beb8f2b28c7fb4473163c568543d865b9a +size 577326 diff --git a/clvmd-fix-node-hash.diff b/clvmd-fix-node-hash.diff deleted file mode 100644 index aee1d6f..0000000 --- a/clvmd-fix-node-hash.diff +++ /dev/null @@ -1,82 +0,0 @@ ---- daemons/clvmd/clvmd-openais.c -+++ daemons/clvmd/clvmd-openais.c -@@ -100,13 +100,6 @@ - SaNameT lock_name; - }; - --struct lock_wait --{ -- pthread_cond_t cond; -- pthread_mutex_t mutex; -- int status; --}; -- - /* Set errno to something approximating the right value and return 0 or -1 */ - static int ais_to_errno(SaAisErrorT err) - { -@@ -245,12 +238,15 @@ - - memcpy(&target_nodeid, msg, OPENAIS_CSID_LEN); - -- DEBUGLOG("Got message from nodeid %d for %d. len %d\n", -- nodeid, target_nodeid, msg_len-4); -+ DEBUGLOG("%u got message from nodeid %d for %d. len %d\n", -+ our_nodeid, nodeid, target_nodeid, msg_len-4); - -- if (target_nodeid == our_nodeid) -- process_message(cluster_client, (char *)msg+OPENAIS_CSID_LEN, -- msg_len-OPENAIS_CSID_LEN, (char*)&nodeid); -+ if (nodeid != our_nodeid) //Not send by myself -+ if (target_nodeid == our_nodeid || target_nodeid == 0) -+ process_message(cluster_client, -+ (char *)msg+OPENAIS_CSID_LEN, -+ msg_len-OPENAIS_CSID_LEN, -+ (char*)&nodeid); - } - - static void cpg_confchg_callback(cpg_handle_t handle, -@@ -292,7 +288,44 @@ - ninfo->state = NODE_DOWN; - } - -+ for (i=0; inodeid = member_list[i].nodeid; -+ dm_hash_insert_binary(node_hash, -+ (char *)&ninfo->nodeid, -+ OPENAIS_CSID_LEN, ninfo); -+ } -+ } -+ ninfo->state = NODE_CLVMD; -+ } -+ - num_nodes = joined_list_entries; -+ -+ //Verbose on node_hash, helpful to debug -+ struct dm_hash_node *hn; -+ DEBUGLOG("Iterate node_hash\n"); -+ dm_hash_iterate(hn, node_hash) -+ { -+ ninfo = dm_hash_get_data(node_hash, hn); -+ if (ninfo->state == NODE_CLVMD) { -+ DEBUGLOG("%u:%s\n", ninfo->nodeid, "CLVMD"); -+ } -+ else { -+ if (ninfo->state == NODE_DOWN) -+ DEBUGLOG("%u:%s\n", ninfo->nodeid, "DOWN"); -+ } -+ } -+ DEBUGLOG("Iterate node_hash done\n"); -+ - } - - diff --git a/clvmd-node-number-fix.diff b/clvmd-node-number-fix.diff deleted file mode 100644 index e695a83..0000000 --- a/clvmd-node-number-fix.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- daemons/clvmd/clvmd-openais.c -+++ daemons/clvmd/clvmd-openais.c -@@ -308,7 +308,7 @@ - ninfo->state = NODE_CLVMD; - } - -- num_nodes = joined_list_entries; -+ num_nodes = member_list_entries; - - //Verbose on node_hash, helpful to debug - struct dm_hash_node *hn; diff --git a/clvmd-openais-sync.diff b/clvmd-openais-sync.diff deleted file mode 100644 index e78f53e..0000000 --- a/clvmd-openais-sync.diff +++ /dev/null @@ -1,168 +0,0 @@ ---- daemons/clvmd/clvmd-openais.c -+++ daemons/clvmd/clvmd-openais.c -@@ -50,11 +50,6 @@ - /* Timeout value for several openais calls */ - #define TIMEOUT 10 - --static void lck_lock_callback(SaInvocationT invocation, -- SaLckLockStatusT lockStatus, -- SaAisErrorT error); --static void lck_unlock_callback(SaInvocationT invocation, -- SaAisErrorT error); - static void cpg_deliver_callback (cpg_handle_t handle, - struct cpg_name *groupName, - uint32_t nodeid, -@@ -92,11 +87,6 @@ - .cpg_confchg_fn = cpg_confchg_callback, - }; - --SaLckCallbacksT lck_callbacks = { -- .saLckLockGrantCallback = lck_lock_callback, -- .saLckResourceUnlockCallback = lck_unlock_callback --}; -- - struct node_info - { - enum {NODE_UNKNOWN, NODE_DOWN, NODE_UP, NODE_CLVMD} state; -@@ -305,32 +295,6 @@ - num_nodes = joined_list_entries; - } - --static void lck_lock_callback(SaInvocationT invocation, -- SaLckLockStatusT lockStatus, -- SaAisErrorT error) --{ -- struct lock_wait *lwait = (struct lock_wait *)(long)invocation; -- -- DEBUGLOG("lck_lock_callback, error = %d\n", error); -- -- lwait->status = error; -- pthread_mutex_lock(&lwait->mutex); -- pthread_cond_signal(&lwait->cond); -- pthread_mutex_unlock(&lwait->mutex); --} -- --static void lck_unlock_callback(SaInvocationT invocation, -- SaAisErrorT error) --{ -- struct lock_wait *lwait = (struct lock_wait *)(long)invocation; -- -- DEBUGLOG("lck_unlock_callback\n"); -- -- lwait->status = SA_AIS_OK; -- pthread_mutex_lock(&lwait->mutex); -- pthread_cond_signal(&lwait->cond); -- pthread_mutex_unlock(&lwait->mutex); --} - - static int lck_dispatch(struct local_client *client, char *buf, int len, - const char *csid, struct local_client **new_client) -@@ -359,7 +323,7 @@ - } - - err = saLckInitialize(&lck_handle, -- &lck_callbacks, -+ NULL, - &ver); - if (err != SA_AIS_OK) { - cpg_initialize(&cpg_handle, &cpg_callbacks); -@@ -495,15 +459,11 @@ - /* Real locking */ - static int _lock_resource(char *resource, int mode, int flags, int *lockid) - { -- struct lock_wait lwait; - struct lock_info *linfo; - SaLckResourceHandleT res_handle; - SaAisErrorT err; - SaLckLockIdT lock_id; -- -- pthread_cond_init(&lwait.cond, NULL); -- pthread_mutex_init(&lwait.mutex, NULL); -- pthread_mutex_lock(&lwait.mutex); -+ SaLckLockStatusT lockStatus; - - /* This needs to be converted from DLM/LVM2 value for OpenAIS LCK */ - if (flags & LCK_NONBLOCK) flags = SA_LCK_LOCK_NO_QUEUE; -@@ -526,24 +486,24 @@ - return ais_to_errno(err); - } - -- err = saLckResourceLockAsync(res_handle, -- (SaInvocationT)(long)&lwait, -- &lock_id, -- mode, -- flags, -- 0); -- if (err != SA_AIS_OK) -+ err = saLckResourceLock( -+ res_handle, -+ &lock_id, -+ mode, -+ flags, -+ 0, -+ SA_TIME_END, -+ &lockStatus); -+ if (err != SA_AIS_OK && lockStatus != SA_LCK_LOCK_GRANTED) - { - free(linfo); - saLckResourceClose(res_handle); - return ais_to_errno(err); - } -- -+ - /* Wait for it to complete */ -- pthread_cond_wait(&lwait.cond, &lwait.mutex); -- pthread_mutex_unlock(&lwait.mutex); - -- DEBUGLOG("lock_resource returning %d, lock_id=%llx\n", lwait.status, -+ DEBUGLOG("lock_resource returning %d, lock_id=%llx\n", err, - lock_id); - - linfo->lock_id = lock_id; -@@ -551,43 +511,34 @@ - - dm_hash_insert(lock_hash, resource, linfo); - -- return ais_to_errno(lwait.status); -+ return ais_to_errno(err); - } - - - static int _unlock_resource(char *resource, int lockid) - { -- struct lock_wait lwait; - SaAisErrorT err; - struct lock_info *linfo; - -- pthread_cond_init(&lwait.cond, NULL); -- pthread_mutex_init(&lwait.mutex, NULL); -- pthread_mutex_lock(&lwait.mutex); -- - DEBUGLOG("unlock_resource %s\n", resource); - linfo = dm_hash_lookup(lock_hash, resource); - if (!linfo) - return 0; - - DEBUGLOG("unlock_resource: lockid: %llx\n", linfo->lock_id); -- err = saLckResourceUnlockAsync((SaInvocationT)(long)&lwait, linfo->lock_id); -+ err = saLckResourceUnlock(linfo->lock_id, SA_TIME_END); - if (err != SA_AIS_OK) - { - DEBUGLOG("Unlock returned %d\n", err); - return ais_to_errno(err); - } - -- /* Wait for it to complete */ -- pthread_cond_wait(&lwait.cond, &lwait.mutex); -- pthread_mutex_unlock(&lwait.mutex); -- - /* Release the resource */ - dm_hash_remove(lock_hash, resource); - saLckResourceClose(linfo->res_handle); - free(linfo); - -- return ais_to_errno(lwait.status); -+ return ais_to_errno(err); - } - - static int _sync_lock(const char *resource, int mode, int flags, int *lockid) diff --git a/enable-clvmd.patch b/enable-clvmd.patch index dfc5e70..d955065 100644 --- a/enable-clvmd.patch +++ b/enable-clvmd.patch @@ -1,9 +1,9 @@ --- daemons/clvmd/clvmd.c +++ daemons/clvmd/clvmd.c @@ -37,7 +37,7 @@ - #include #include #include + #include -#include +//#include diff --git a/lvm2.changes b/lvm2.changes index 3133bb7..f7ee5d0 100644 --- a/lvm2.changes +++ b/lvm2.changes @@ -1,3 +1,33 @@ +------------------------------------------------------------------- +Fri Jun 27 07:51:31 CEST 2008 - xwhu@suse.de + +- update to 2.02.38 + Fix tracking of validity of PVs with no mdas in lvmcache. + Fix return values for reporting commands when run with no PVs, LVs, or VGs. + Fix free_count when reading pool metadata. + Fix segfault when using pvcreate on a device containing pool metadata. + Fix segfault after _free_vginfo by remembering to remove vginfo from list. + Fix setpriority error message to signed int. + Fix uninitialised mutex in clvmd if all daemons are not running at startup. + Fix fsadm.sh to work with older blockdev, blkid & readlink binaries. + Fix lvresize to pass new size to fsadm when extending device. + Fix nodes list in clvmd-openais, and allow for broadcast messages. + Fix vgsplit internal counting of snapshot LVs. + Fix vgmerge snapshot_count when source VG contains snapshots. + Fix internal LV counter when a snapshot is removed. + Fix metadata corruption writing lvm1-formatted metadata with snapshots. + Fix lvconvert -m0 allocatable space check. + Fix vgdisplay 'Cur LV' field to match lvdisplay output. + Fix lv_count report field to exclude hidden LVs. + Fix vgsplit to only move hidden 'snapshotN' LVs when necessary. + Fix vgreduce to use vg_split_mdas to check sufficient mdas remain. + Fix orphan VG name used for format_pool. + Fix output if overriding command_names on cmdline. + Fix vgsplit locking of new VG (2.02.30). + Fix redundant lvresize message if vg doesn't exist. + Fix another allocation bug with clvmd and large node IDs. + Fix uninitialised variable in clvmd that could cause odd hangs. + ------------------------------------------------------------------- Mon May 5 11:19:29 CEST 2008 - aj@suse.de diff --git a/lvm2.spec b/lvm2.spec index 11b844a..89432c7 100644 --- a/lvm2.spec +++ b/lvm2.spec @@ -1,5 +1,5 @@ # -# spec file for package lvm2 (Version 2.02.33) +# spec file for package lvm2 (Version 2.02.38) # # Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. # This file and all modifications and additions to the pristine @@ -14,13 +14,13 @@ Name: lvm2 BuildRequires: device-mapper-devel openais-devel License: GPL v2 or later; LGPL v2.1 or later Group: System/Base -Requires: device-mapper >= 1.02.23 +Requires: device-mapper >= 1.02.25 Provides: lvm Obsoletes: lvm PreReq: %fillup_prereq %insserv_prereq AutoReqProv: on -Version: 2.02.33 -Release: 22 +Version: 2.02.38 +Release: 1 Summary: LVM2 Tools Source: LVM2.%{version}.tar.bz2 Source1: lvm.conf @@ -36,9 +36,6 @@ Patch10: lvm-no_chown.diff Patch11: cmdline_large_minor.diff Patch12: enable-clvmd.patch Patch13: pipe_buff-definition.diff -Patch14: clvmd-openais-sync.diff -Patch15: clvmd-fix-node-hash.diff -Patch16: clvmd-node-number-fix.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -70,9 +67,6 @@ A daemon for using LVM2 Logival Volumes in a clustered environment. %patch11 %patch12 %patch13 -%patch14 -%patch15 -%patch16 %build CFLAGS="$RPM_OPT_FLAGS" MODPROBE_CMD=/sbin/modprobe \ @@ -226,6 +220,33 @@ rm -rf $RPM_BUILD_ROOT %{_mandir}/man8/vgsplit.8.gz %changelog +* Fri Jun 27 2008 xwhu@suse.de +- update to 2.02.38 + Fix tracking of validity of PVs with no mdas in lvmcache. + Fix return values for reporting commands when run with no PVs, LVs, or VGs. + Fix free_count when reading pool metadata. + Fix segfault when using pvcreate on a device containing pool metadata. + Fix segfault after _free_vginfo by remembering to remove vginfo from list. + Fix setpriority error message to signed int. + Fix uninitialised mutex in clvmd if all daemons are not running at startup. + Fix fsadm.sh to work with older blockdev, blkid & readlink binaries. + Fix lvresize to pass new size to fsadm when extending device. + Fix nodes list in clvmd-openais, and allow for broadcast messages. + Fix vgsplit internal counting of snapshot LVs. + Fix vgmerge snapshot_count when source VG contains snapshots. + Fix internal LV counter when a snapshot is removed. + Fix metadata corruption writing lvm1-formatted metadata with snapshots. + Fix lvconvert -m0 allocatable space check. + Fix vgdisplay 'Cur LV' field to match lvdisplay output. + Fix lv_count report field to exclude hidden LVs. + Fix vgsplit to only move hidden 'snapshotN' LVs when necessary. + Fix vgreduce to use vg_split_mdas to check sufficient mdas remain. + Fix orphan VG name used for format_pool. + Fix output if overriding command_names on cmdline. + Fix vgsplit locking of new VG (2.02.30). + Fix redundant lvresize message if vg doesn't exist. + Fix another allocation bug with clvmd and large node IDs. + Fix uninitialised variable in clvmd that could cause odd hangs. * Mon May 05 2008 aj@suse.de - Fix requires of clvm. * Wed Apr 30 2008 hare@suse.de