[lvm-devel] LVM2 ./WHATS_NEW daemons/cmirrord/cluster.c
jbrassow at sourceware.org
jbrassow at sourceware.org
Wed Jan 27 22:28:06 UTC 2010
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: jbrassow at sourceware.org 2010-01-27 22:28:06
Modified files:
. : WHATS_NEW
daemons/cmirrord: cluster.c
Log message:
Was using dm_list_iterate_items when I should have been using
*_safe. This had the effect of segfaulting the log daemon when
converting a mirror from one log type to another.
Signed-off-by: Jonathan Brassow <jbrassow at redhat.com>
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW.diff?cvsroot=lvm2&r1=1.1412&r2=1.1413
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/daemons/cmirrord/cluster.c.diff?cvsroot=lvm2&r1=1.13&r2=1.14
--- LVM2/WHATS_NEW 2010/01/27 13:29:11 1.1412
+++ LVM2/WHATS_NEW 2010/01/27 22:28:05 1.1413
@@ -1,5 +1,6 @@
Version 2.02.60 - 23rd January 2010
===================================
+ Fix lvconvert issue with cluster mirrors due to un'_safe' list processing
Fix pvmove abort workaround to be cluster-aware when temporary mirror activation fails.
Always query device by using uuid only and not name in clvmd.
Add missing metadata reverts in pvmove error path.
--- LVM2/daemons/cmirrord/cluster.c 2010/01/20 02:43:19 1.13
+++ LVM2/daemons/cmirrord/cluster.c 2010/01/27 22:28:06 1.14
@@ -858,9 +858,9 @@
static int do_cluster_work(void *data __attribute((unused)))
{
int r = SA_AIS_OK;
- struct clog_cpg *entry;
+ struct clog_cpg *entry, *tmp;
- dm_list_iterate_items(entry, &clog_cpg_list) {
+ dm_list_iterate_items_safe(entry, tmp, &clog_cpg_list) {
r = cpg_dispatch(entry->handle, CPG_DISPATCH_ALL);
if (r != SA_AIS_OK)
LOG_ERROR("cpg_dispatch failed: %s", str_ais_error(r));
More information about the lvm-devel
mailing list