All of lore.kernel.org
 help / color / mirror / Atom feed
From: lhh@sourceware.org <lhh@sourceware.org>
To: cluster-devel.redhat.com
Subject: [Cluster-devel] cluster/rgmanager ChangeLog include/reslist.h  ...
Date: 3 May 2007 15:02:56 -0000	[thread overview]
Message-ID: <20070503150256.27023.qmail@sourceware.org> (raw)

CVSROOT:	/cvs/cluster
Module name:	cluster
Branch: 	RHEL4
Changes by:	lhh at sourceware.org	2007-05-03 15:02:48

Modified files:
	rgmanager      : ChangeLog 
	rgmanager/include: reslist.h 
	rgmanager/make : defines.mk.input 
	rgmanager/src/clulib: Makefile alloc.c clulog.c msgsimple.c 
	                      vft.c 
	rgmanager/src/daemons: groups.c rg_state.c 
	rgmanager/src/daemons/tests: delta-test004-test005.expected 
	                             delta-test005-test006.expected 
	                             delta-test006-test007.expected 
	                             delta-test007-test008.expected 
	                             delta-test008-test009.expected 
	                             delta-test009-test010.expected 
	                             delta-test010-test011.expected 
	                             delta-test011-test012.expected 
	                             delta-test012-test013.expected 
	                             delta-test013-test014.expected 
	                             delta-test014-test015.expected 
	                             delta-test015-test016.expected 
	                             delta-test016-test017.expected 
	                             test005.expected test006.expected 
	                             test007.expected test008.expected 
	                             test009.expected test010.expected 
	                             test011.expected test012.expected 
	                             test013.expected test014.expected 
	                             test015.expected test016.expected 
	                             test017.expected 
	rgmanager/src/resources: fs.sh nfsclient.sh nfsexport.sh 
	rgmanager/src/utils: clulog.c 
Added files:
	rgmanager/src/clulib: wrap_lock.c 

Log message:
	2007-05-03 Lon Hohberger <lhh@redhat.com>
	* Merge patch from Crosswalk development team:
	* Scott Cannata
	* Henry Harris
	* Leonard Maiorani
	* src/daemons/groups.c, rg_state.c: Apply patch from Andrey
	Mirkin to fix bug #237144; prevents exclusive services from
	being accidentally (or intentionally) being started on the
	same node
	* src/daemons/restree.c: Don't print (null) when an attr
	isn't inherited
	* src/daemons/reslist.c: Try all direct ancestors while
	performing run-time inheritance resolution #231521
	* src/daemons/tests/*: Clean up test cases; don't look for (null)
	any more

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/ChangeLog.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.5.2.24&r2=1.5.2.25
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/include/reslist.h.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.8.2.6&r2=1.8.2.7
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/make/defines.mk.input.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.3&r2=1.3.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/clulib/wrap_lock.c.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=NONE&r2=1.1.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/clulib/Makefile.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.4.2.2&r2=1.4.2.3
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/clulib/alloc.c.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.3.2.4&r2=1.3.2.5
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/clulib/clulog.c.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.2.2.3&r2=1.2.2.4
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/clulib/msgsimple.c.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.4.2.1&r2=1.4.2.2
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/clulib/vft.c.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.7.2.7&r2=1.7.2.8
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/groups.c.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.8.2.18&r2=1.8.2.19
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/rg_state.c.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.4.2.19&r2=1.4.2.20
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/delta-test004-test005.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/delta-test005-test006.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/delta-test006-test007.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/delta-test007-test008.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/delta-test008-test009.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/delta-test009-test010.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/delta-test010-test011.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/delta-test011-test012.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/delta-test012-test013.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/delta-test013-test014.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/delta-test014-test015.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/delta-test015-test016.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/delta-test016-test017.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.1&r2=1.1.2.2
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/test005.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/test006.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/test007.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/test008.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/test009.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/test010.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/test011.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/test012.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/test013.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/test014.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/test015.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/test016.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.3&r2=1.1.2.4
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/daemons/tests/test017.expected.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.1&r2=1.1.2.2
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/resources/fs.sh.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.4.2.21&r2=1.4.2.22
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/resources/nfsclient.sh.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.3.2.11&r2=1.3.2.12
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/resources/nfsexport.sh.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.4.2.5&r2=1.4.2.6
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/rgmanager/src/utils/clulog.c.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.2&r2=1.1.2.3

--- cluster/rgmanager/ChangeLog	2006/11/03 16:26:18	1.5.2.24
+++ cluster/rgmanager/ChangeLog	2007/05/03 15:02:45	1.5.2.25
@@ -1,3 +1,21 @@
+2007-05-03 Lon Hohberger <lhh@redhat.com>
+	* Merge patch from Crosswalk development team:
+		* Scott Cannata
+		* Henry Harris
+		* Leonard Maiorani
+	* src/daemons/groups.c, rg_state.c: Apply patch from Andrey
+	Mirkin to fix bug #237144; prevents exclusive services from
+	being accidentally (or intentionally) being started on the
+	same node
+	* src/daemons/restree.c: Don't print (null) when an attr
+	isn't inherited
+	* src/daemons/reslist.c: Try all direct ancestors while 
+	performing run-time inheritance resolution #231521
+	* src/daemons/tests/*: Clean up test cases; don't look for (null)
+	any more
+
+=====
+
 2006-11-03 Lon Hohberger <lhh@redhat.com>
 	* src/daemons/restree.c: Merge patch from Jeff Layton to instrument
 	res_exec more closely. (#213246)
--- cluster/rgmanager/include/reslist.h	2007/03/20 19:40:06	1.8.2.6
+++ cluster/rgmanager/include/reslist.h	2007/05/03 15:02:46	1.8.2.7
@@ -25,11 +25,6 @@
 #include <libxml/xpath.h>
 
 
-#define RA_PRIMARY	(1<<0)
-#define RA_UNIQUE	(1<<1)
-#define RA_REQUIRED	(1<<2)
-#define RA_INHERIT	(1<<3)
-
 #define RF_INLINE	(1<<0)
 #define RF_DEFINED	(1<<1)
 #define RF_NEEDSTART	(1<<2)	/** Used when adding/changing resources */
@@ -70,11 +65,24 @@
 #include <res-ocf.h>
 
 
+typedef enum {
+/*
+#define RA_PRIMARY	(1<<0)
+#define RA_UNIQUE	(1<<1)
+#define RA_REQUIRED	(1<<2)
+#define RA_INHERIT	(1<<3)
+ */
+	RA_PRIMARY = (1<<0),
+	RA_UNIQUE  = (1<<1),
+	RA_REQUIRED= (1<<2),
+	RA_INHERIT = (1<<3),
+	RA_SPEC    = (1<<4)
+} ra_flag_t;
+
 typedef struct _resource_attribute {
-	int	ra_flags;
-	/* XXX possible alignment problem on ia64 */
 	char	*ra_name;
 	char	*ra_value;
+	ra_flag_t ra_flags;
 } resource_attr_t;
 
 
--- cluster/rgmanager/make/Attic/defines.mk.input	2004/10/27 20:26:22	1.3
+++ cluster/rgmanager/make/Attic/defines.mk.input	2007/05/03 15:02:46	1.3.2.1
@@ -32,3 +32,11 @@
 
 # Default CFLAGS
 CFLAGS += -DSHAREDIR=\"@SHAREDIR@\" -Wall ${INCLUDE}
+
+#
+# Wrappers around pthread_mutex / pthread_rwlock calls for deadlock
+# detection (and other things)
+#
+#CFLAGS += -DSHAREDIR=\"/usr/share/cluster\" -Wall ${INCLUDE} -DWRAP_LOCKS -DMAX_DISPATCH_RETRIES=3
+#LDFLAGS += -Wl,-wrap,pthread_mutex_lock,-wrap,pthread_mutex_unlock,-wrap,pthread_rwlock_rdlock,-wrap,pthread_rwlock_wrlock,-wrap,pthread_rwlock_unlock
+
/cvs/cluster/cluster/rgmanager/src/clulib/wrap_lock.c,v  -->  standard output
revision 1.1.2.1
--- cluster/rgmanager/src/clulib/wrap_lock.c
+++ -	2007-05-03 15:02:50.265394000 +0000
@@ -0,0 +1,224 @@
+/*
+  Copyright Red Hat, Inc. 2007
+  Copyright Crosswalk 2006-2007
+
+  This program is free software; you can redistribute it and/or modify it
+  under the terms of the GNU General Public License as published by the
+  Free Software Foundation; either version 2, or (at your option) any
+  later version.
+
+  This program is distributed in the hope that it will be useful, but
+  WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+  General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program; see the file COPYING.  If not, write to the
+  Free Software Foundation, Inc.,  675 Mass Ave, Cambridge, 
+  MA 02139, USA.
+*/
+#ifdef WRAP_LOCKS
+#include <stdio.h>
+#include <sys/types.h>
+#include <gettid.h>
+#include <pthread.h>
+#include <string.h>
+#include <errno.h>
+#include <string.h>
+#include <signal.h>
+
+int __real_pthread_mutex_lock(pthread_mutex_t *lock);
+int
+__wrap_pthread_mutex_lock(pthread_mutex_t *lock)
+{
+	int status;
+	struct timespec delay;
+
+	while (1) {
+		status = __real_pthread_mutex_lock(lock);
+
+		switch(status) {
+		case EDEADLK:
+			/* Already own it: Note the error, but continue */
+			fprintf(stderr, "[%d] %s(%p): %s; continuing\n",
+				gettid(),
+				__FUNCTION__, lock, strerror(status));
+			/* deliberate fallthrough */
+		case 0:
+			return 0;
+		case EBUSY:
+			/* Try again */
+			break;
+		default:
+			/* Other return codes */
+			fprintf(stderr, "[%d] %s(%p): %s\n", gettid(),
+				__FUNCTION__, lock, strerror(status));
+			raise(SIGSEGV);
+			/* EINVAL? */
+			return 0;
+		}
+
+		delay.tv_sec = 0;
+		delay.tv_nsec = 100000;
+		nanosleep(&delay, NULL);
+	}
+
+	/* Not reached */
+	return 0;
+}
+
+
+int __real_pthread_mutex_unlock(pthread_mutex_t *lock);
+int
+__wrap_pthread_mutex_unlock(pthread_mutex_t *lock)
+{
+	int status;
+	struct timespec delay;
+
+	while (1) {
+		status = __real_pthread_mutex_unlock(lock);
+
+		switch(status) {
+		case EPERM:
+			/* Don't own it: Note the error, but continue */
+			fprintf(stderr, "[%d] %s(%p): %s; continuing\n",
+				gettid(),
+				__FUNCTION__, lock, strerror(status));
+			/* deliberate fallthrough */
+		case 0:
+			return 0;
+		default:
+			fprintf(stderr, "[%d] %s(%p): %s\n", gettid(),
+				__FUNCTION__, lock, strerror(status));
+			raise(SIGSEGV);
+			return 0;
+		}
+
+		delay.tv_sec = 0;
+		delay.tv_nsec = 100000;
+		nanosleep(&delay, NULL);
+	}
+
+	/* Not reached */
+	return 0;
+}
+
+
+int __real_pthread_rwlock_rdlock(pthread_rwlock_t *lock);
+int
+__wrap_pthread_rwlock_rdlock(pthread_rwlock_t *lock)
+{
+	int status;
+	struct timespec delay;
+
+	while (1) {
+		status = __real_pthread_rwlock_rdlock(lock);
+
+		switch(status) {
+		case EDEADLK:
+			/* Already own it: Note the error, but continue */
+			fprintf(stderr, "[%d] %s(%p): %s; continuing\n",
+				gettid(),
+				__FUNCTION__, lock, strerror(status));
+			/* deliberate fallthrough */
+		case 0:
+			return 0;
+		case EBUSY:
+			/* Try again */
+			break;
+		default:
+			/* Other return codes */
+			fprintf(stderr, "[%d] %s(%p): %s\n", gettid(),
+				__FUNCTION__, lock, strerror(status));
+			raise(SIGSEGV);
+			/* EINVAL? */
+			return 0;
+		}
+
+		delay.tv_sec = 0;
+		delay.tv_nsec = 100000;
+		nanosleep(&delay, NULL);
+	}
+
+	/* Not reached */
+	return 0;
+}
+
+
+int __real_pthread_rwlock_wrlock(pthread_rwlock_t *lock);
+int
+__wrap_pthread_rwlock_wrlock(pthread_rwlock_t *lock)
+{
+	int status;
+	struct timespec delay;
+
+	while (1) {
+		status = __real_pthread_rwlock_wrlock(lock);
+
+		switch(status) {
+		case EDEADLK:
+			/* Already own it: Note the error, but continue */
+			fprintf(stderr, "[%d] %s(%p): %s; continuing\n",
+				gettid(),
+				__FUNCTION__, lock, strerror(status));
+			/* deliberate fallthrough */
+		case 0:
+			return 0;
+		case EBUSY:
+			/* Try again */
+			break;
+		default:
+			/* Other return codes */
+			fprintf(stderr, "[%d] %s(%p): %s\n", gettid(),
+				__FUNCTION__, lock, strerror(status));
+			raise(SIGSEGV);
+			/* EINVAL? */
+			return 0;
+		}
+
+		delay.tv_sec = 0;
+		delay.tv_nsec = 100000;
+		nanosleep(&delay, NULL);
+	}
+
+	/* Not reached */
+	return 0;
+}
+
+
+int __real_pthread_rwlock_unlock(pthread_rwlock_t *lock);
+int
+__wrap_pthread_rwlock_unlock(pthread_rwlock_t *lock)
+{
+	int status;
+	struct timespec delay;
+
+	while (1) {
+		status = __real_pthread_rwlock_unlock(lock);
+
+		switch(status) {
+		case EPERM:
+			/* Don't own it: Note the error, but continue */
+			fprintf(stderr, "[%d] %s(%p): %s; continuing\n",
+				gettid(),
+				__FUNCTION__, lock, strerror(status));
+			/* deliberate fallthrough */
+		case 0:
+			return 0;
+		default:
+			fprintf(stderr, "[%d] %s(%p): %s\n", gettid(),
+				__FUNCTION__, lock, strerror(status));
+			raise(SIGSEGV);
+			return 0;
+		}
+
+		delay.tv_sec = 0;
+		delay.tv_nsec = 100000;
+		nanosleep(&delay, NULL);
+	}
+
+	/* Not reached */
+	return 0;
+}
+#endif
+
--- cluster/rgmanager/src/clulib/Makefile	2005/01/25 17:22:42	1.4.2.2
+++ cluster/rgmanager/src/clulib/Makefile	2007/05/03 15:02:46	1.4.2.3
@@ -30,7 +30,7 @@
 uninstall:
 
 libclulib.a: clulog.o daemon_init.o signals.o msgsimple.o \
-		vft.o gettid.o rg_strings.o
+		vft.o gettid.o rg_strings.o wrap_lock.o
 	${AR} cru $@ $^
 	ranlib $@
 
--- cluster/rgmanager/src/clulib/alloc.c	2006/01/20 16:25:24	1.3.2.4
+++ cluster/rgmanager/src/clulib/alloc.c	2007/05/03 15:02:46	1.3.2.5
@@ -155,7 +155,11 @@
 
 #ifndef NOPTHREADS
 #include <pthread.h>
+#ifdef WRAP_LOCKS
+static pthread_mutex_t _alloc_mutex = PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP;
+#else
 static pthread_mutex_t _alloc_mutex = PTHREAD_MUTEX_INITIALIZER;
+#endif /* WRAP_LOCKS */
 #else
 #define pthread_mutex_trylock(x) (0)
 #define pthread_mutex_lock(x)
--- cluster/rgmanager/src/clulib/clulog.c	2006/10/05 17:52:27	1.2.2.3
+++ cluster/rgmanager/src/clulib/clulog.c	2007/05/03 15:02:46	1.2.2.4
@@ -20,7 +20,7 @@
 /** @file
  * Library routines for communicating with the logging daemon.
  *
- *  $Id: clulog.c,v 1.2.2.3 2006/10/05 17:52:27 lhh Exp $
+ *  $Id: clulog.c,v 1.2.2.4 2007/05/03 15:02:46 lhh Exp $
  *
  *  Author: Jeff Moyer <moyer@missioncriticallinux.com>
  */
@@ -50,7 +50,7 @@
 #include <string.h>
 
 
-static const char *version __attribute__ ((unused)) = "$Revision: 1.2.2.3 $";
+static const char *version __attribute__ ((unused)) = "$Revision: 1.2.2.4 $";
 
 #ifdef DEBUG
 #include <assert.h>
@@ -70,7 +70,12 @@
 static int   syslog_facility = LOG_DAEMON;
 static char  *daemon_name = NULL;
 static pid_t daemon_pid = -1;
+
+#ifdef WRAP_LOCKS
+static pthread_mutex_t log_mutex = PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP;
+#else
 static pthread_mutex_t log_mutex = PTHREAD_MUTEX_INITIALIZER;
+#endif
 
 CODE logger_prioritynames[] = 
 { {"emerg", LOG_EMERG},
--- cluster/rgmanager/src/clulib/msgsimple.c	2006/05/12 21:28:31	1.4.2.1
+++ cluster/rgmanager/src/clulib/msgsimple.c	2007/05/03 15:02:46	1.4.2.2
@@ -51,6 +51,8 @@
 int
 msg_send_simple(int fd, int cmd, int arg1, int arg2)
 {
+	int       status;
+	int       my_errno;
 	generic_msg_hdr msg;
 
 	msg.gh_magic = GENERIC_HDR_MAGIC;
@@ -60,7 +62,25 @@
 	msg.gh_arg2 = arg2;
 	swab_generic_msg_hdr(&msg);
 
-	return msg_send(fd, (void *) &msg, sizeof (msg));
+	my_errno = 0;
+	status = msg_send(fd, (void *) &msg, sizeof (msg));
+	my_errno = errno;
+
+	if (status <= 0)
+	{
+		/*
+		 *  Should never be the case since msg_send() is 
+		 *  wrapped in a retry loop. Give one more try
+		 *  calling msg_send() for a few errnos, others, return
+		 *  error as they cannot and should not be retried.
+		 */
+		if ((my_errno == EINTR) || (my_errno == EAGAIN) ||
+		    (my_errno == ENOSPC)) {
+			status = msg_send(fd, (void *) &msg, sizeof (msg));
+		}
+	}
+
+	return (status);
 }
 
 
@@ -95,7 +115,7 @@
 			fprintf(stderr, "fd%d peek: %d/%d bytes\n", fd,
 			       ret, (int)sizeof (generic_msg_hdr));
 		else if (ret == 0)
-			errno = EAGAIN;
+			errno = ECONNRESET;
 		return -1;
 	}
 
@@ -110,7 +130,6 @@
 	 * allocate enough memory to receive the header + diff buffer
 	 */
 	*buf = malloc(peek_msg.gh_length);
-	memset(*buf, 0, peek_msg.gh_length);
 
 	if (!*buf) {
 		fprintf(stderr, "%s: malloc: %s", __FUNCTION__,
@@ -118,6 +137,8 @@
 		return -1;
 	}
 
+	memset(*buf, 0, peek_msg.gh_length);
+
 	/*
 	 * Now, do the real receive.  2 second timeout, if none specified.
 	 */
--- cluster/rgmanager/src/clulib/vft.c	2006/12/13 18:19:56	1.7.2.7
+++ cluster/rgmanager/src/clulib/vft.c	2007/05/03 15:02:46	1.7.2.8
@@ -54,8 +54,13 @@
  * TODO: We could make it thread safe, but this might be unnecessary work
  * Solution: Super-coarse-grained-bad-code-locking!
  */
+#ifdef WRAP_LOCKS
+static pthread_mutex_t key_list_mutex = PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP;
+static pthread_mutex_t vf_mutex = PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP;
+#else
 static pthread_mutex_t key_list_mutex = PTHREAD_MUTEX_INITIALIZER;
 static pthread_mutex_t vf_mutex = PTHREAD_MUTEX_INITIALIZER;
+#endif /* WRAP_LOCKS */
 static pthread_t vf_thread = (pthread_t)-1;
 static int thread_ready = 0;
 static vf_vote_cb_t default_vote_cb = NULL;
@@ -332,6 +337,7 @@
 	struct timeval tv;
 	fd_set rfds;
 	int nready, x;
+	int  myerrno = 0;
 
 	/* Set up for the select */
 	tv.tv_sec = timeout;
@@ -351,12 +357,30 @@
 			FD_SET(peer_fds[x], &rfds);
 
 		nready = select(MAX_FDS, &rfds, NULL, NULL, &tv);
-		if (nready <= -1) {
-			if (nready == 0)
-				printf("VF Abort: Timed out!\n");
-			else
-				printf("VF Abort: %s\n",
-				       strerror(errno));
+
+		/*
+		 *  fix, rhat erroneous check of nready==0 and
+		 *  not retrying on EINTR.
+		 */
+		if (nready < 0) 
+		{
+			myerrno = errno;
+			fprintf(stderr, "VF Abort: %s\n", strerror(myerrno));
+
+			if (myerrno == EINTR) {
+				tv.tv_sec = timeout;
+				tv.tv_usec = 0;
+				continue;
+			}
+
+			errno = myerrno;
+			return 0;
+		}
+
+		if (nready == 0) {
+			fprintf(stderr, 
+				"VF Abort: Timed out!\n");
+
 			return 0;
 		}
 
@@ -768,8 +792,13 @@
 	if (!fp)
 		return -1;
 
+#if defined(__sparc__) || defined(__hppa__) || defined(__sparc64__) || defined (__hppa64__)
+	rv = fscanf(fp,"%ld.%d %ld.%d\n", &tv->tv_sec, &tv->tv_usec,
+		    &junk.tv_sec, &junk.tv_usec);
+#else
 	rv = fscanf(fp,"%ld.%ld %ld.%ld\n", &tv->tv_sec, &tv->tv_usec,
 		    &junk.tv_sec, &junk.tv_usec);
+#endif
 	fclose(fp);
 	
 	if (rv != 4) {
@@ -830,6 +859,15 @@
 		free(key_node->kn_data);
 	key_node->kn_datalen = vnp->vn_datalen;
 	key_node->kn_data = malloc(vnp->vn_datalen);
+
+	/*
+	 *   Need to check return of malloc always
+	 */
+	if (key_node->kn_data == NULL) {
+		fprintf (stderr, "malloc fail err=%d\n", errno);
+		return -1;
+	}
+
 	memcpy(key_node->kn_data, vnp->vn_data, vnp->vn_datalen);
 
 	free(vnp);
@@ -844,15 +882,42 @@
 	struct timeval tv;
 	fd_set rfds;
 	generic_msg_hdr *hdrp = NULL;
+	int   myerrno = 0;
 
-	FD_ZERO(&rfds);
-	max = msg_fill_fdset(&rfds, MSG_ALL, MSGP_VFS);
+	while (1) {
+		FD_ZERO(&rfds);
+		max = msg_fill_fdset(&rfds, MSG_ALL, MSGP_VFS);
 
-	tv.tv_sec = 1;
-	tv.tv_usec = 0;
-	nready = select(max + 1, &rfds, NULL, NULL, &tv);
-	if (nready <= 0)
-		return;
+		tv.tv_sec = 1;
+		tv.tv_usec = 0;
+
+		nready = select(max + 1, &rfds, NULL, NULL, &tv);
+		if (nready < 0)
+		{
+			myerrno = errno;
+#ifdef NOT_NOW
+			/*
+			 *  i think red hat wants to return w/ EINTR
+			 */
+			if (myerrno == EINTR)
+			{
+				continue;
+			}
+#endif /* NOT_NOW */
+
+			errno = myerrno;
+			return;
+		}
+
+		if (nready == 0) {
+			return;
+		}
+
+		/*
+		 *  positive return value, break and process.
+		 */
+		break;
+	}
 
 	while (nready) {
 		fd = msg_next_fd(&rfds);
@@ -970,6 +1035,12 @@
 	}
 
 	va = malloc(sizeof(*va));
+
+	if (va == NULL) {
+		fprintf (stderr, "vf_init: malloc fail2 err=%d\n", errno);
+		return -1;
+	}
+
 	va->local_node_id = my_node_id;
 	va->port = my_port;
 
@@ -1071,6 +1142,13 @@
 	}
 
 	newnode = malloc(sizeof(*newnode));
+
+	if (newnode == NULL) {
+		fprintf(stderr, "malloc fail3 err=%d\n", errno);
+		pthread_mutex_unlock(&key_list_mutex);
+		return -1;
+	}
+
 	newnode->kn_data = NULL;
 	memset(newnode,0,sizeof(*newnode));
 	newnode->kn_keyid = strdup(keyid);
@@ -1178,6 +1256,8 @@
 	void *lockp = NULL;
 	int l;
 	char lock_name[256];
+	int my_status;
+	int ret_status = 0;
 
 	if (!data || !datalen || !keyid || !strlen(keyid) || !membership)
 		return -1;
@@ -1187,7 +1267,6 @@
 	snprintf(lock_name, sizeof(lock_name), "usrm::vf");
 	l = clu_lock(lock_name, CLK_EX, &lockp);
 	if (l < 0) {
-		clu_unlock(lock_name, lockp);
 		pthread_mutex_unlock(&vf_mutex);
 		return l;
 	}
@@ -1196,6 +1275,7 @@
 	count = sizeof(int) * (membership->cml_count + 1);
 	peer_fds = malloc(count);
 	if(!peer_fds) {
+		clu_unlock(lock_name, lockp);
 		pthread_mutex_unlock(&vf_mutex);
 		return -1;
 	}
@@ -1240,13 +1320,13 @@
 				goto retry_top;
 			if (flags & VFF_IGN_CONN_ERRORS)
 				continue;
+			close_all(peer_fds);
 			free(peer_fds);
 
 			clu_unlock(lock_name, lockp);
 			pthread_mutex_unlock(&vf_mutex);
 			return -1;
 		}
-
 		++y;
 	}
 
@@ -1289,19 +1369,30 @@
 	 */
 	for (x = 0; peer_fds[x] != -1; x++) {
 
-		if (msg_send(peer_fds[x], join_view, totallen) != totallen) {
-			vf_send_abort(peer_fds);
-			close_all(peer_fds);
-
-			free(join_view);
-			clu_unlock(lock_name, lockp);
-			pthread_mutex_unlock(&vf_mutex);
-			return -1;
-		} 
+		/*
+		 *  Still send msg to everyone, but then close
+		 *  all peers fds and cleanup - TBD JSC
+		 */
+		my_status = msg_send(peer_fds[x], join_view, totallen);
+		if (my_status != totallen) {
+			ret_status = -1;
+		}
 
 		remain++;
 	}
 
+	/*
+	 *  Now cleanup
+	 */
+	if (ret_status == -1) {
+		vf_send_abort(peer_fds);
+		close_all(peer_fds);
+		free(join_view);
+		clu_unlock(lock_name, lockp);
+		pthread_mutex_unlock(&vf_mutex);
+		return -1;
+	}
+
 #ifdef DEBUG
 	printf("VF: Checking for consensus...\n");
 #endif
@@ -1524,7 +1615,6 @@
 	snprintf(lock_name, sizeof(lock_name), "usrm::vf");
 	l = clu_lock(lock_name, CLK_EX, &lockp);
 	if (l < 0) {
-		clu_unlock(lock_name, lockp);
 		pthread_mutex_unlock(&vf_mutex);
 		printf("Couldn't lock %s\n", keyid);
 		return l;
--- cluster/rgmanager/src/daemons/groups.c	2006/11/27 22:21:30	1.8.2.18
+++ cluster/rgmanager/src/daemons/groups.c	2007/05/03 15:02:47	1.8.2.19
@@ -22,6 +22,7 @@
 #include <magma.h>
 #include <magmamsg.h>
 #include <resgroup.h>
+#include <reslist.h>
 #include <vf.h>
 #include <magma.h>
 #include <ccs.h>
@@ -132,6 +133,106 @@
 }
 
 
+int get_rg_state_local(char *, rg_state_t *);
+int
+count_resource_groups_local(cluster_member_t *mp)
+{
+	resource_t *res;
+	char *rgname, *val;
+	rg_state_t st;
+
+	mp->cm_svccount = 0;
+	mp->cm_svcexcl = 0;
+
+	pthread_rwlock_rdlock(&resource_lock);
+
+	list_do(&_resources, res) {
+		if (res->r_rule->rr_root == 0)
+			continue;
+
+		rgname = res->r_attrs[0].ra_value;
+
+		if (get_rg_state_local(rgname, &st) < 0) {
+			continue;
+		}
+
+		if (st.rs_state != RG_STATE_STARTED &&
+		     st.rs_state != RG_STATE_STARTING)
+			continue;
+
+		if (mp->cm_id != st.rs_owner)
+			continue;
+
+		++mp->cm_svccount;
+
+		val = res_attr_value(res, "exclusive");
+		if (val && ((!strcmp(val, "yes") ||
+				     (atoi(val)>0))) ) {
+			++mp->cm_svcexcl;
+		}
+
+	} while (!list_done(&_resources, res));
+
+	pthread_rwlock_unlock(&resource_lock);
+
+	return 0;
+}
+
+
+int
+have_exclusive_resources()
+{
+	resource_t *res;
+	char *val;
+
+	pthread_rwlock_rdlock(&resource_lock);
+
+	list_do(&_resources, res) {
+		val = res_attr_value(res, "exclusive");
+		if (val && ((!strcmp(val, "yes") ||
+				     (atoi(val)>0))) ) {
+			pthread_rwlock_unlock(&resource_lock);
+			return 1;
+		}
+
+	} while (!list_done(&_resources, res));
+
+	pthread_rwlock_unlock(&resource_lock);
+
+	return 0;
+}
+
+
+int
+check_exclusive_resources(cluster_member_list_t *membership, char *svcName)
+{
+	cluster_member_t *mp;
+	int exclusive, count; 
+	resource_t *res;
+	char *val;
+
+	mp = memb_id_to_p(membership, my_id());
+	assert(mp);
+	count_resource_groups_local(mp);
+	exclusive = mp->cm_svcexcl;
+	count = mp->cm_svccount;
+	pthread_rwlock_rdlock(&resource_lock);
+	res = find_root_by_ref(&_resources, svcName);
+	if (!res) {
+		pthread_rwlock_unlock(&resource_lock);
+		return FAIL;
+	}
+	val = res_attr_value(res, "exclusive");
+	pthread_rwlock_unlock(&resource_lock);
+	if (exclusive || (count && val && 
+			(!strcmp(val, "yes") || (atoi(val)>0)))) {
+		return 1;
+	}
+
+	return 0;
+}
+
+
 /**
    Find the best target node for a service *besides* the current service
    owner.  Takes into account:
@@ -576,7 +677,6 @@
   @param rgname		Resource group name whose state we want to send.
   @see send_rg_states
  */
-int get_rg_state_local(char *, rg_state_t *);
 void
 send_rg_state(int fd, char *rgname, int fast)
 {
--- cluster/rgmanager/src/daemons/rg_state.c	2007/02/20 19:52:36	1.4.2.19
+++ cluster/rgmanager/src/daemons/rg_state.c	2007/05/03 15:02:47	1.4.2.20
@@ -41,6 +41,8 @@
 int set_rg_state(char *servicename, rg_state_t *svcblk);
 int get_rg_state(char *servicename, rg_state_t *svcblk);
 void get_recovery_policy(char *rg_name, char *buf, size_t buflen);
+int have_exclusive_resources();
+int check_exclusive_resources(cluster_member_list_t *membership, char *svcName);
 
 
 uint64_t
@@ -603,6 +605,10 @@
 			ret = 1;
 			break;
 		}
+		if (req == RG_START_RECOVER) {
+			ret = 1;
+			break;
+		}
 
 		clulog(LOG_DEBUG, "Not starting disabled RG %s\n",
 		       svcName);
@@ -1308,6 +1314,7 @@
 }
 
 
+pthread_mutex_t exclusive_mutex = PTHREAD_MUTEX_INITIALIZER;
 /**
  * handle_start_req - Handle a generic start request from a user or during
  * service manager boot.
@@ -1323,6 +1330,7 @@
 {
 	int ret, tolerance = FOD_BEST;
 	cluster_member_list_t *membership = member_list();
+	int need_check = have_exclusive_resources();
 
 	/*
 	 * When a service request is from a user application (eg, clusvcadm),
@@ -1338,6 +1346,18 @@
 		cml_free(membership);
 		return FAIL;
 	}
+	if (need_check) {
+		pthread_mutex_lock(&exclusive_mutex);
+		ret = check_exclusive_resources(membership, svcName);
+		if (ret != 0) {
+			cml_free(membership);
+			pthread_mutex_unlock(&exclusive_mutex);
+			if (ret > 0)
+				goto relocate;
+			else
+				return FAIL;
+		}
+	}
 	cml_free(membership);
 	
 	/*
@@ -1345,6 +1365,8 @@
 	 * mask here - so that we can try all nodes if necessary.
 	 */
 	ret = svc_start(svcName, req);
+	if (need_check)
+		pthread_mutex_unlock(&exclusive_mutex);
 
 	/* 
 	   If services are locked, return the error 
@@ -1384,6 +1406,7 @@
 		return RG_EABORT;
 	}
 	
+relocate:
 	/*
 	 * OK, it failed to start - but succeeded to stop.  Now,
 	 * we should relocate the service.
@@ -1421,6 +1444,7 @@
 	int x;
 	uint64_t me = my_id();
 	cluster_member_list_t *membership = member_list();
+	int need_check = have_exclusive_resources();
 
 	/* XXX ok, so we need to say "should I start this if I was the
 	   only cluster member online */
@@ -1441,9 +1465,19 @@
 		cml_free(membership);
 		return FAIL;
 	}
+ 	if (need_check) {
+ 		pthread_mutex_lock(&exclusive_mutex);
+ 		if (check_exclusive_resources(membership, svcName) != 0) {
+ 			pthread_mutex_unlock(&exclusive_mutex);
+ 			cml_free(membership);
+ 			return FAIL;
+ 		}
+ 	}
 	cml_free(membership);
 
 	x = svc_start(svcName, req);
+	if (need_check)
+ 		pthread_mutex_unlock(&exclusive_mutex);
 	if (x == 0)
 		return 0;
 	if (x == RG_ERUN)
--- cluster/rgmanager/src/daemons/tests/delta-test004-test005.expected	2007/03/20 19:40:06	1.1.2.3
+++ cluster/rgmanager/src/daemons/tests/delta-test004-test005.expected	2007/05/03 15:02:47	1.1.2.4
@@ -49,7 +49,6 @@
   ip [ NEEDSTART ] {
     address = "192.168.1.2";
     monitor_link = "1";
-    nfslock = "(null)";
   }
   script {
     name = "initscript";
--- cluster/rgmanager/src/daemons/tests/delta-test005-test006.expected	2007/03/20 19:40:06	1.1.2.3
+++ cluster/rgmanager/src/daemons/tests/delta-test005-test006.expected	2007/05/03 15:02:47	1.1.2.4
@@ -48,7 +48,6 @@
   ip [ NEEDSTOP ] {
     address = "192.168.1.2";
     monitor_link = "1";
-    nfslock = "(null)";
   }
   script {
     name = "initscript";
@@ -62,7 +61,6 @@
   ip [ NEEDSTART ] {
     address = "192.168.1.2";
     monitor_link = "yes";
-    nfslock = "(null)";
   }
   script {
     name = "initscript";
--- cluster/rgmanager/src/daemons/tests/delta-test006-test007.expected	2007/03/20 19:40:06	1.1.2.3
+++ cluster/rgmanager/src/daemons/tests/delta-test006-test007.expected	2007/05/03 15:02:47	1.1.2.4
@@ -48,7 +48,6 @@
   ip [ NEEDSTOP ] {
     address = "192.168.1.2";
     monitor_link = "yes";
-    nfslock = "(null)";
   }
   script {
     name = "initscript";
@@ -62,7 +61,6 @@
   ip [ NEEDSTART ] {
     address = "192.168.1.3";
     monitor_link = "yes";
-    nfslock = "(null)";
   }
   script {
     name = "initscript";
--- cluster/rgmanager/src/daemons/tests/delta-test007-test008.expected	2007/03/20 19:40:06	1.1.2.3
+++ cluster/rgmanager/src/daemons/tests/delta-test007-test008.expected	2007/05/03 15:02:47	1.1.2.4
@@ -58,7 +58,6 @@
   ip {
     address = "192.168.1.3";
     monitor_link = "yes";
-    nfslock = "(null)";
   }
   script {
     name = "initscript";
@@ -72,7 +71,6 @@
   ip {
     address = "192.168.1.3";
     monitor_link = "yes";
-    nfslock = "(null)";
   }
   script {
     name = "initscript";
--- cluster/rgmanager/src/daemons/tests/delta-test008-test009.expected	2007/03/20 19:40:06	1.1.2.3
+++ cluster/rgmanager/src/daemons/tests/delta-test008-test009.expected	2007/05/03 15:02:47	1.1.2.4
@@ -68,7 +68,6 @@
   ip {
     address = "192.168.1.3";
     monitor_link = "yes";
-    nfslock = "(null)";
   }
   script {
     name = "initscript";
@@ -84,12 +83,10 @@
     mountpoint = "/mnt/cluster";
     device = "/dev/sdb8";
     fstype = "ext3";
-    nfslock = "(null)";
   }
   ip {
     address = "192.168.1.3";
     monitor_link = "yes";
-    nfslock = "(null)";
   }
   script {
     name = "initscript";
--- cluster/rgmanager/src/daemons/tests/delta-test009-test010.expected	2007/03/20 19:40:06	1.1.2.3
+++ cluster/rgmanager/src/daemons/tests/delta-test009-test010.expected	2007/05/03 15:02:47	1.1.2.4
@@ -79,12 +79,10 @@
     mountpoint = "/mnt/cluster";
     device = "/dev/sdb8";
     fstype = "ext3";
-    nfslock = "(null)";
   }
   ip {
     address = "192.168.1.3";
     monitor_link = "yes";
-    nfslock = "(null)";
   }
   script {
     name = "initscript";
@@ -100,12 +98,10 @@
     mountpoint = "/mnt/cluster";
     device = "/dev/sdb8";
     fstype = "ext3";
-    nfslock = "(null)";
   }
   ip {
     address = "192.168.1.3";
     monitor_link = "yes";
-    nfslock = "(null)";
   }
   script {
     name = "initscript";
--- cluster/rgmanager/src/daemons/tests/delta-test010-test011.expected	2007/03/20 19:40:06	1.1.2.3
+++ cluster/rgmanager/src/daemons/tests/delta-test010-test011.expected	2007/05/03 15:02:47	1.1.2.4
@@ -138,12 +138,10 @@
     mountpoint = "/mnt/cluster";
     device = "/dev/sdb8";
     fstype = "ext3";
-    nfslock = "(null)";
   }
   ip {
     address = "192.168.1.3";
     monitor_link = "yes";
-    nfslock = "(null)";
   }
   script {
     name = "initscript";
@@ -159,27 +157,20 @@
     mountpoint = "/mnt/cluster";
     device = "/dev/sdb8";
     fstype = "ext3";
-    nfslock = "(null)";
     nfsexport [ NEEDSTART ] {
       name = "Dummy Export";
       device = "/dev/sdb8";
       path = "/mnt/cluster";
-      fsid = "(null)";
-      nfslock = "(null)";
       nfsclient {
         name = "Admin group";
         target = "@admin";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
       nfsclient {
         name = "User group";
         target = "@users";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "ro";
       }
     }
@@ -187,7 +178,6 @@
   ip {
     address = "192.168.1.3";
     monitor_link = "yes";
-    nfslock = "(null)";
   }
   script {
     name = "initscript";
--- cluster/rgmanager/src/daemons/tests/delta-test011-test012.expected	2007/03/20 19:40:06	1.1.2.3
+++ cluster/rgmanager/src/daemons/tests/delta-test011-test012.expected	2007/05/03 15:02:47	1.1.2.4
@@ -188,27 +188,20 @@
     mountpoint = "/mnt/cluster";
     device = "/dev/sdb8";
     fstype = "ext3";
-    nfslock = "(null)";
     nfsexport {
       name = "Dummy Export";
       device = "/dev/sdb8";
       path = "/mnt/cluster";
-      fsid = "(null)";
-      nfslock = "(null)";
       nfsclient {
         name = "Admin group";
         target = "@admin";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
       nfsclient {
         name = "User group";
         target = "@users";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "ro";
       }
     }
@@ -216,7 +209,6 @@
   ip {
     address = "192.168.1.3";
     monitor_link = "yes";
-    nfslock = "(null)";
   }
   script {
     name = "initscript";
@@ -232,35 +224,26 @@
     mountpoint = "/mnt/cluster";
     device = "/dev/sdb8";
     fstype = "ext3";
-    nfslock = "(null)";
     nfsexport {
       name = "Dummy Export";
       device = "/dev/sdb8";
       path = "/mnt/cluster";
-      fsid = "(null)";
-      nfslock = "(null)";
       nfsclient {
         name = "Admin group";
         target = "@admin";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
       nfsclient {
         name = "User group";
         target = "@users";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "ro";
       }
       nfsclient [ NEEDSTART ] {
         name = "red";
         target = "red";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "ro";
       }
     }
@@ -268,7 +251,6 @@
   ip {
     address = "192.168.1.3";
     monitor_link = "yes";
-    nfslock = "(null)";
   }
   script {
     name = "initscript";
--- cluster/rgmanager/src/daemons/tests/delta-test012-test013.expected	2007/03/20 19:40:06	1.1.2.3
+++ cluster/rgmanager/src/daemons/tests/delta-test012-test013.expected	2007/05/03 15:02:47	1.1.2.4
@@ -188,35 +188,26 @@
     mountpoint = "/mnt/cluster";
     device = "/dev/sdb8";
     fstype = "ext3";
-    nfslock = "(null)";
     nfsexport {
       name = "Dummy Export";
       device = "/dev/sdb8";
       path = "/mnt/cluster";
-      fsid = "(null)";
-      nfslock = "(null)";
       nfsclient {
         name = "Admin group";
         target = "@admin";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
       nfsclient {
         name = "User group";
         target = "@users";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "ro";
       }
       nfsclient [ NEEDSTOP ] {
         name = "red";
         target = "red";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "ro";
       }
     }
@@ -224,7 +215,6 @@
   ip {
     address = "192.168.1.3";
     monitor_link = "yes";
-    nfslock = "(null)";
   }
   script {
     name = "initscript";
@@ -240,35 +230,26 @@
     mountpoint = "/mnt/cluster";
     device = "/dev/sdb8";
     fstype = "ext3";
-    nfslock = "(null)";
     nfsexport {
       name = "Dummy Export";
       device = "/dev/sdb8";
       path = "/mnt/cluster";
-      fsid = "(null)";
-      nfslock = "(null)";
       nfsclient {
         name = "Admin group";
         target = "@admin";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
       nfsclient {
         name = "User group";
         target = "@users";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "ro";
       }
       nfsclient [ NEEDSTART ] {
         name = "red";
         target = "red";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
     }
@@ -276,7 +257,6 @@
   ip {
     address = "192.168.1.3";
     monitor_link = "yes";
-    nfslock = "(null)";
   }
   script {
     name = "initscript";
--- cluster/rgmanager/src/daemons/tests/delta-test013-test014.expected	2007/03/20 19:40:06	1.1.2.3
+++ cluster/rgmanager/src/daemons/tests/delta-test013-test014.expected	2007/05/03 15:02:47	1.1.2.4
@@ -212,35 +212,26 @@
     mountpoint = "/mnt/cluster";
     device = "/dev/sdb8";
     fstype = "ext3";
-    nfslock = "(null)";
     nfsexport {
       name = "Dummy Export";
       device = "/dev/sdb8";
       path = "/mnt/cluster";
-      fsid = "(null)";
-      nfslock = "(null)";
       nfsclient {
         name = "Admin group";
         target = "@admin";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
       nfsclient {
         name = "User group";
         target = "@users";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "ro";
       }
       nfsclient {
         name = "red";
         target = "red";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
     }
@@ -248,7 +239,6 @@
   ip {
     address = "192.168.1.3";
     monitor_link = "yes";
-    nfslock = "(null)";
   }
   script {
     name = "initscript";
@@ -264,35 +254,26 @@
     mountpoint = "/mnt/cluster";
     device = "/dev/sdb8";
     fstype = "ext3";
-    nfslock = "(null)";
     nfsexport {
       name = "Dummy Export";
       device = "/dev/sdb8";
       path = "/mnt/cluster";
-      fsid = "(null)";
-      nfslock = "(null)";
       nfsclient {
         name = "Admin group";
         target = "@admin";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
       nfsclient {
         name = "User group";
         target = "@users";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "ro";
       }
       nfsclient {
         name = "red";
         target = "red";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
     }
@@ -300,7 +281,6 @@
   ip {
     address = "192.168.1.3";
     monitor_link = "yes";
-    nfslock = "(null)";
   }
   script {
     name = "initscript";
@@ -315,35 +295,26 @@
     mountpoint = "/mnt/cluster2";
     device = "/dev/sdb9";
     fstype = "ext3";
-    nfslock = "(null)";
     nfsexport {
       name = "Dummy Export";
       device = "/dev/sdb9";
       path = "/mnt/cluster2";
-      fsid = "(null)";
-      nfslock = "(null)";
       nfsclient {
         name = "Admin group";
         target = "@admin";
         path = "/mnt/cluster2";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
       nfsclient {
         name = "User group";
         target = "@users";
         path = "/mnt/cluster2";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "ro";
       }
       nfsclient {
         name = "red";
         target = "red";
         path = "/mnt/cluster2";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
     }
@@ -351,7 +322,6 @@
   ip {
     address = "192.168.1.4";
     monitor_link = "yes";
-    nfslock = "(null)";
   }
   script {
     name = "initscript";
--- cluster/rgmanager/src/daemons/tests/delta-test014-test015.expected	2007/03/20 19:40:06	1.1.2.3
+++ cluster/rgmanager/src/daemons/tests/delta-test014-test015.expected	2007/05/03 15:02:47	1.1.2.4
@@ -236,35 +236,26 @@
     mountpoint = "/mnt/cluster";
     device = "/dev/sdb8";
     fstype = "ext3";
-    nfslock = "(null)";
     nfsexport {
       name = "Dummy Export";
       device = "/dev/sdb8";
       path = "/mnt/cluster";
-      fsid = "(null)";
-      nfslock = "(null)";
       nfsclient {
         name = "Admin group";
         target = "@admin";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
       nfsclient [ NEEDSTOP ] {
         name = "User group";
         target = "@users";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "ro";
       }
       nfsclient {
         name = "red";
         target = "red";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
     }
@@ -272,7 +263,6 @@
   ip {
     address = "192.168.1.3";
     monitor_link = "yes";
-    nfslock = "(null)";
   }
   script {
     name = "initscript";
@@ -287,35 +277,26 @@
     mountpoint = "/mnt/cluster2";
     device = "/dev/sdb9";
     fstype = "ext3";
-    nfslock = "(null)";
     nfsexport {
       name = "Dummy Export";
       device = "/dev/sdb9";
       path = "/mnt/cluster2";
-      fsid = "(null)";
-      nfslock = "(null)";
       nfsclient {
         name = "Admin group";
         target = "@admin";
         path = "/mnt/cluster2";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
       nfsclient [ NEEDSTOP ] {
         name = "User group";
         target = "@users";
         path = "/mnt/cluster2";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "ro";
       }
       nfsclient {
         name = "red";
         target = "red";
         path = "/mnt/cluster2";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
     }
@@ -323,7 +304,6 @@
   ip {
     address = "192.168.1.4";
     monitor_link = "yes";
-    nfslock = "(null)";
   }
   script {
     name = "initscript";
@@ -339,35 +319,26 @@
     mountpoint = "/mnt/cluster";
     device = "/dev/sdb8";
     fstype = "ext3";
-    nfslock = "(null)";
     nfsexport {
       name = "Dummy Export";
       device = "/dev/sdb8";
       path = "/mnt/cluster";
-      fsid = "(null)";
-      nfslock = "(null)";
       nfsclient {
         name = "Admin group";
         target = "@admin";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
       nfsclient [ NEEDSTART ] {
         name = "User group";
         target = "@users";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw,sync";
       }
       nfsclient {
         name = "red";
         target = "red";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
     }
@@ -375,7 +346,6 @@
   ip {
     address = "192.168.1.3";
     monitor_link = "yes";
-    nfslock = "(null)";
   }
   script {
     name = "initscript";
@@ -390,35 +360,26 @@
     mountpoint = "/mnt/cluster2";
     device = "/dev/sdb9";
     fstype = "ext3";
-    nfslock = "(null)";
     nfsexport {
       name = "Dummy Export";
       device = "/dev/sdb9";
       path = "/mnt/cluster2";
-      fsid = "(null)";
-      nfslock = "(null)";
       nfsclient {
         name = "Admin group";
         target = "@admin";
         path = "/mnt/cluster2";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
       nfsclient [ NEEDSTART ] {
         name = "User group";
         target = "@users";
         path = "/mnt/cluster2";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw,sync";
       }
       nfsclient {
         name = "red";
         target = "red";
         path = "/mnt/cluster2";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
     }
@@ -426,7 +387,6 @@
   ip {
     address = "192.168.1.4";
     monitor_link = "yes";
-    nfslock = "(null)";
   }
   script {
     name = "initscript";
--- cluster/rgmanager/src/daemons/tests/delta-test015-test016.expected	2007/03/20 19:40:06	1.1.2.3
+++ cluster/rgmanager/src/daemons/tests/delta-test015-test016.expected	2007/05/03 15:02:47	1.1.2.4
@@ -237,35 +237,26 @@
     mountpoint = "/mnt/cluster";
     device = "/dev/sdb8";
     fstype = "ext3";
-    nfslock = "(null)";
     nfsexport {
       name = "Dummy Export";
       device = "/dev/sdb8";
       path = "/mnt/cluster";
-      fsid = "(null)";
-      nfslock = "(null)";
       nfsclient {
         name = "Admin group";
         target = "@admin";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
       nfsclient {
         name = "User group";
         target = "@users";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw,sync";
       }
       nfsclient {
         name = "red";
         target = "red";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
     }
@@ -273,7 +264,6 @@
   ip {
     address = "192.168.1.3";
     monitor_link = "yes";
-    nfslock = "(null)";
   }
   script {
     name = "initscript";
@@ -288,35 +278,26 @@
     mountpoint = "/mnt/cluster2";
     device = "/dev/sdb9";
     fstype = "ext3";
-    nfslock = "(null)";
     nfsexport {
       name = "Dummy Export";
       device = "/dev/sdb9";
       path = "/mnt/cluster2";
-      fsid = "(null)";
-      nfslock = "(null)";
       nfsclient {
         name = "Admin group";
         target = "@admin";
         path = "/mnt/cluster2";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
       nfsclient {
         name = "User group";
         target = "@users";
         path = "/mnt/cluster2";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw,sync";
       }
       nfsclient {
         name = "red";
         target = "red";
         path = "/mnt/cluster2";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
     }
@@ -324,7 +305,6 @@
   ip {
     address = "192.168.1.4";
     monitor_link = "yes";
-    nfslock = "(null)";
   }
   script {
     name = "initscript";
@@ -340,35 +320,26 @@
     mountpoint = "/mnt/cluster";
     device = "/dev/sdb8";
     fstype = "ext3";
-    nfslock = "(null)";
     nfsexport {
       name = "Dummy Export";
       device = "/dev/sdb8";
       path = "/mnt/cluster";
-      fsid = "(null)";
-      nfslock = "(null)";
       nfsclient {
         name = "Admin group";
         target = "@admin";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
       nfsclient {
         name = "User group";
         target = "@users";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw,sync";
       }
       nfsclient {
         name = "red";
         target = "red";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
     }
@@ -376,7 +347,6 @@
   ip {
     address = "192.168.1.3";
     monitor_link = "yes";
-    nfslock = "(null)";
   }
   script {
     name = "initscript";
@@ -391,35 +361,26 @@
     mountpoint = "/mnt/cluster2";
     device = "/dev/sdb9";
     fstype = "ext3";
-    nfslock = "(null)";
     nfsexport {
       name = "Dummy Export";
       device = "/dev/sdb9";
       path = "/mnt/cluster2";
-      fsid = "(null)";
-      nfslock = "(null)";
       nfsclient {
         name = "Admin group";
         target = "@admin";
         path = "/mnt/cluster2";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
       nfsclient {
         name = "User group";
         target = "@users";
         path = "/mnt/cluster2";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw,sync";
       }
       nfsclient {
         name = "red";
         target = "red";
         path = "/mnt/cluster2";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
     }
@@ -427,7 +388,6 @@
   ip {
     address = "192.168.1.4";
     monitor_link = "yes";
-    nfslock = "(null)";
   }
   script {
     name = "initscript";
--- cluster/rgmanager/src/daemons/tests/delta-test016-test017.expected	2007/03/22 23:16:43	1.1.2.1
+++ cluster/rgmanager/src/daemons/tests/delta-test016-test017.expected	2007/05/03 15:02:47	1.1.2.2
@@ -251,35 +251,26 @@
     mountpoint = "/mnt/cluster";
     device = "/dev/sdb8";
     fstype = "ext3";
-    nfslock = "(null)";
     nfsexport {
       name = "Dummy Export";
       device = "/dev/sdb8";
       path = "/mnt/cluster";
-      fsid = "(null)";
-      nfslock = "(null)";
       nfsclient {
         name = "Admin group";
         target = "@admin";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
       nfsclient {
         name = "User group";
         target = "@users";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw,sync";
       }
       nfsclient {
         name = "red";
         target = "red";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
     }
@@ -287,7 +278,6 @@
   ip [ NEEDSTOP ] {
     address = "192.168.1.3";
     monitor_link = "yes";
-    nfslock = "(null)";
   }
   script {
     name = "initscript";
@@ -302,35 +292,26 @@
     mountpoint = "/mnt/cluster2";
     device = "/dev/sdb9";
     fstype = "ext3";
-    nfslock = "(null)";
     nfsexport {
       name = "Dummy Export";
       device = "/dev/sdb9";
       path = "/mnt/cluster2";
-      fsid = "(null)";
-      nfslock = "(null)";
       nfsclient {
         name = "Admin group";
         target = "@admin";
         path = "/mnt/cluster2";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
       nfsclient {
         name = "User group";
         target = "@users";
         path = "/mnt/cluster2";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw,sync";
       }
       nfsclient {
         name = "red";
         target = "red";
         path = "/mnt/cluster2";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
     }
@@ -338,7 +319,6 @@
   ip [ NEEDSTOP ] {
     address = "192.168.1.4";
     monitor_link = "yes";
-    nfslock = "(null)";
   }
   script {
     name = "initscript";
@@ -354,35 +334,26 @@
     mountpoint = "/mnt/cluster";
     device = "/dev/sdb8";
     fstype = "ext3";
-    nfslock = "(null)";
     nfsexport {
       name = "Dummy Export";
       device = "/dev/sdb8";
       path = "/mnt/cluster";
-      fsid = "(null)";
-      nfslock = "(null)";
       nfsclient {
         name = "Admin group";
         target = "@admin";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
       nfsclient {
         name = "User group";
         target = "@users";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw,sync";
       }
       nfsclient {
         name = "red";
         target = "red";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
     }
@@ -402,42 +373,32 @@
     ip [ NEEDSTART ] {
       address = "192.168.1.3";
       monitor_link = "yes";
-      nfslock = "(null)";
     }
     fs [ NEEDSTART ] {
       name = "mount2";
       mountpoint = "/mnt/cluster2";
       device = "/dev/sdb9";
       fstype = "ext3";
-      nfslock = "(null)";
       nfsexport {
         name = "Dummy Export";
         device = "/dev/sdb9";
         path = "/mnt/cluster2";
-        fsid = "(null)";
-        nfslock = "(null)";
         nfsclient {
           name = "Admin group";
           target = "@admin";
           path = "/mnt/cluster2";
-          fsid = "(null)";
-          nfslock = "(null)";
           options = "rw";
         }
         nfsclient {
           name = "User group";
           target = "@users";
           path = "/mnt/cluster2";
-          fsid = "(null)";
-          nfslock = "(null)";
           options = "rw,sync";
         }
         nfsclient {
           name = "red";
           target = "red";
           path = "/mnt/cluster2";
-          fsid = "(null)";
-          nfslock = "(null)";
           options = "rw";
         }
       }
@@ -445,12 +406,10 @@
     script [ NEEDSTART ] {
       name = "script2";
       file = "/etc/init.d/script2";
-      service_name = "(null)";
     }
     ip [ NEEDSTART ] {
       address = "192.168.1.4";
       monitor_link = "yes";
-      nfslock = "(null)";
     }
   }
   script [ NEEDSTART ] {
--- cluster/rgmanager/src/daemons/tests/test005.expected	2007/03/20 19:40:06	1.1.2.3
+++ cluster/rgmanager/src/daemons/tests/test005.expected	2007/05/03 15:02:47	1.1.2.4
@@ -26,7 +26,6 @@
   ip {
     address = "192.168.1.2";
     monitor_link = "1";
-    nfslock = "(null)";
   }
   script {
     name = "initscript";
--- cluster/rgmanager/src/daemons/tests/test006.expected	2007/03/20 19:40:06	1.1.2.3
+++ cluster/rgmanager/src/daemons/tests/test006.expected	2007/05/03 15:02:47	1.1.2.4
@@ -26,7 +26,6 @@
   ip {
     address = "192.168.1.2";
     monitor_link = "yes";
-    nfslock = "(null)";
   }
   script {
     name = "initscript";
--- cluster/rgmanager/src/daemons/tests/test007.expected	2007/03/20 19:40:06	1.1.2.3
+++ cluster/rgmanager/src/daemons/tests/test007.expected	2007/05/03 15:02:47	1.1.2.4
@@ -26,7 +26,6 @@
   ip {
     address = "192.168.1.3";
     monitor_link = "yes";
-    nfslock = "(null)";
   }
   script {
     name = "initscript";
--- cluster/rgmanager/src/daemons/tests/test008.expected	2007/03/20 19:40:06	1.1.2.3
+++ cluster/rgmanager/src/daemons/tests/test008.expected	2007/05/03 15:02:47	1.1.2.4
@@ -36,7 +36,6 @@
   ip {
     address = "192.168.1.3";
     monitor_link = "yes";
-    nfslock = "(null)";
   }
   script {
     name = "initscript";
--- cluster/rgmanager/src/daemons/tests/test009.expected	2007/03/20 19:40:06	1.1.2.3
+++ cluster/rgmanager/src/daemons/tests/test009.expected	2007/05/03 15:02:47	1.1.2.4
@@ -38,12 +38,10 @@
     mountpoint = "/mnt/cluster";
     device = "/dev/sdb8";
     fstype = "ext3";
-    nfslock = "(null)";
   }
   ip {
     address = "192.168.1.3";
     monitor_link = "yes";
-    nfslock = "(null)";
   }
   script {
     name = "initscript";
--- cluster/rgmanager/src/daemons/tests/test010.expected	2007/03/20 19:40:06	1.1.2.3
+++ cluster/rgmanager/src/daemons/tests/test010.expected	2007/05/03 15:02:47	1.1.2.4
@@ -47,12 +47,10 @@
     mountpoint = "/mnt/cluster";
     device = "/dev/sdb8";
     fstype = "ext3";
-    nfslock = "(null)";
   }
   ip {
     address = "192.168.1.3";
     monitor_link = "yes";
-    nfslock = "(null)";
   }
   script {
     name = "initscript";
--- cluster/rgmanager/src/daemons/tests/test011.expected	2007/03/20 19:40:06	1.1.2.3
+++ cluster/rgmanager/src/daemons/tests/test011.expected	2007/05/03 15:02:47	1.1.2.4
@@ -97,27 +97,20 @@
     mountpoint = "/mnt/cluster";
     device = "/dev/sdb8";
     fstype = "ext3";
-    nfslock = "(null)";
     nfsexport {
       name = "Dummy Export";
       device = "/dev/sdb8";
       path = "/mnt/cluster";
-      fsid = "(null)";
-      nfslock = "(null)";
       nfsclient {
         name = "Admin group";
         target = "@admin";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
       nfsclient {
         name = "User group";
         target = "@users";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "ro";
       }
     }
@@ -125,7 +118,6 @@
   ip {
     address = "192.168.1.3";
     monitor_link = "yes";
-    nfslock = "(null)";
   }
   script {
     name = "initscript";
--- cluster/rgmanager/src/daemons/tests/test012.expected	2007/03/20 19:40:06	1.1.2.3
+++ cluster/rgmanager/src/daemons/tests/test012.expected	2007/05/03 15:02:47	1.1.2.4
@@ -97,35 +97,26 @@
     mountpoint = "/mnt/cluster";
     device = "/dev/sdb8";
     fstype = "ext3";
-    nfslock = "(null)";
     nfsexport {
       name = "Dummy Export";
       device = "/dev/sdb8";
       path = "/mnt/cluster";
-      fsid = "(null)";
-      nfslock = "(null)";
       nfsclient {
         name = "Admin group";
         target = "@admin";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
       nfsclient {
         name = "User group";
         target = "@users";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "ro";
       }
       nfsclient {
         name = "red";
         target = "red";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "ro";
       }
     }
@@ -133,7 +124,6 @@
   ip {
     address = "192.168.1.3";
     monitor_link = "yes";
-    nfslock = "(null)";
   }
   script {
     name = "initscript";
--- cluster/rgmanager/src/daemons/tests/test013.expected	2007/03/20 19:40:06	1.1.2.3
+++ cluster/rgmanager/src/daemons/tests/test013.expected	2007/05/03 15:02:47	1.1.2.4
@@ -97,35 +97,26 @@
     mountpoint = "/mnt/cluster";
     device = "/dev/sdb8";
     fstype = "ext3";
-    nfslock = "(null)";
     nfsexport {
       name = "Dummy Export";
       device = "/dev/sdb8";
       path = "/mnt/cluster";
-      fsid = "(null)";
-      nfslock = "(null)";
       nfsclient {
         name = "Admin group";
         target = "@admin";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
       nfsclient {
         name = "User group";
         target = "@users";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "ro";
       }
       nfsclient {
         name = "red";
         target = "red";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
     }
@@ -133,7 +124,6 @@
   ip {
     address = "192.168.1.3";
     monitor_link = "yes";
-    nfslock = "(null)";
   }
   script {
     name = "initscript";
--- cluster/rgmanager/src/daemons/tests/test014.expected	2007/03/20 19:40:06	1.1.2.3
+++ cluster/rgmanager/src/daemons/tests/test014.expected	2007/05/03 15:02:47	1.1.2.4
@@ -121,35 +121,26 @@
     mountpoint = "/mnt/cluster";
     device = "/dev/sdb8";
     fstype = "ext3";
-    nfslock = "(null)";
     nfsexport {
       name = "Dummy Export";
       device = "/dev/sdb8";
       path = "/mnt/cluster";
-      fsid = "(null)";
-      nfslock = "(null)";
       nfsclient {
         name = "Admin group";
         target = "@admin";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
       nfsclient {
         name = "User group";
         target = "@users";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "ro";
       }
       nfsclient {
         name = "red";
         target = "red";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
     }
@@ -157,7 +148,6 @@
   ip {
     address = "192.168.1.3";
     monitor_link = "yes";
-    nfslock = "(null)";
   }
   script {
     name = "initscript";
@@ -172,35 +162,26 @@
     mountpoint = "/mnt/cluster2";
     device = "/dev/sdb9";
     fstype = "ext3";
-    nfslock = "(null)";
     nfsexport {
       name = "Dummy Export";
       device = "/dev/sdb9";
       path = "/mnt/cluster2";
-      fsid = "(null)";
-      nfslock = "(null)";
       nfsclient {
         name = "Admin group";
         target = "@admin";
         path = "/mnt/cluster2";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
       nfsclient {
         name = "User group";
         target = "@users";
         path = "/mnt/cluster2";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "ro";
       }
       nfsclient {
         name = "red";
         target = "red";
         path = "/mnt/cluster2";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
     }
@@ -208,7 +189,6 @@
   ip {
     address = "192.168.1.4";
     monitor_link = "yes";
-    nfslock = "(null)";
   }
   script {
     name = "initscript";
--- cluster/rgmanager/src/daemons/tests/test015.expected	2007/03/20 19:40:06	1.1.2.3
+++ cluster/rgmanager/src/daemons/tests/test015.expected	2007/05/03 15:02:47	1.1.2.4
@@ -121,35 +121,26 @@
     mountpoint = "/mnt/cluster";
     device = "/dev/sdb8";
     fstype = "ext3";
-    nfslock = "(null)";
     nfsexport {
       name = "Dummy Export";
       device = "/dev/sdb8";
       path = "/mnt/cluster";
-      fsid = "(null)";
-      nfslock = "(null)";
       nfsclient {
         name = "Admin group";
         target = "@admin";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
       nfsclient {
         name = "User group";
         target = "@users";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw,sync";
       }
       nfsclient {
         name = "red";
         target = "red";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
     }
@@ -157,7 +148,6 @@
   ip {
     address = "192.168.1.3";
     monitor_link = "yes";
-    nfslock = "(null)";
   }
   script {
     name = "initscript";
@@ -172,35 +162,26 @@
     mountpoint = "/mnt/cluster2";
     device = "/dev/sdb9";
     fstype = "ext3";
-    nfslock = "(null)";
     nfsexport {
       name = "Dummy Export";
       device = "/dev/sdb9";
       path = "/mnt/cluster2";
-      fsid = "(null)";
-      nfslock = "(null)";
       nfsclient {
         name = "Admin group";
         target = "@admin";
         path = "/mnt/cluster2";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
       nfsclient {
         name = "User group";
         target = "@users";
         path = "/mnt/cluster2";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw,sync";
       }
       nfsclient {
         name = "red";
         target = "red";
         path = "/mnt/cluster2";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
     }
@@ -208,7 +189,6 @@
   ip {
     address = "192.168.1.4";
     monitor_link = "yes";
-    nfslock = "(null)";
   }
   script {
     name = "initscript";
--- cluster/rgmanager/src/daemons/tests/test016.expected	2007/03/20 19:40:06	1.1.2.3
+++ cluster/rgmanager/src/daemons/tests/test016.expected	2007/05/03 15:02:47	1.1.2.4
@@ -122,35 +122,26 @@
     mountpoint = "/mnt/cluster";
     device = "/dev/sdb8";
     fstype = "ext3";
-    nfslock = "(null)";
     nfsexport {
       name = "Dummy Export";
       device = "/dev/sdb8";
       path = "/mnt/cluster";
-      fsid = "(null)";
-      nfslock = "(null)";
       nfsclient {
         name = "Admin group";
         target = "@admin";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
       nfsclient {
         name = "User group";
         target = "@users";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw,sync";
       }
       nfsclient {
         name = "red";
         target = "red";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
     }
@@ -158,7 +149,6 @@
   ip {
     address = "192.168.1.3";
     monitor_link = "yes";
-    nfslock = "(null)";
   }
   script {
     name = "initscript";
@@ -173,35 +163,26 @@
     mountpoint = "/mnt/cluster2";
     device = "/dev/sdb9";
     fstype = "ext3";
-    nfslock = "(null)";
     nfsexport {
       name = "Dummy Export";
       device = "/dev/sdb9";
       path = "/mnt/cluster2";
-      fsid = "(null)";
-      nfslock = "(null)";
       nfsclient {
         name = "Admin group";
         target = "@admin";
         path = "/mnt/cluster2";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
       nfsclient {
         name = "User group";
         target = "@users";
         path = "/mnt/cluster2";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw,sync";
       }
       nfsclient {
         name = "red";
         target = "red";
         path = "/mnt/cluster2";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
     }
@@ -209,7 +190,6 @@
   ip {
     address = "192.168.1.4";
     monitor_link = "yes";
-    nfslock = "(null)";
   }
   script {
     name = "initscript";
--- cluster/rgmanager/src/daemons/tests/test017.expected	2007/03/22 23:16:43	1.1.2.1
+++ cluster/rgmanager/src/daemons/tests/test017.expected	2007/05/03 15:02:47	1.1.2.2
@@ -135,35 +135,26 @@
     mountpoint = "/mnt/cluster";
     device = "/dev/sdb8";
     fstype = "ext3";
-    nfslock = "(null)";
     nfsexport {
       name = "Dummy Export";
       device = "/dev/sdb8";
       path = "/mnt/cluster";
-      fsid = "(null)";
-      nfslock = "(null)";
       nfsclient {
         name = "Admin group";
         target = "@admin";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
       nfsclient {
         name = "User group";
         target = "@users";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw,sync";
       }
       nfsclient {
         name = "red";
         target = "red";
         path = "/mnt/cluster";
-        fsid = "(null)";
-        nfslock = "(null)";
         options = "rw";
       }
     }
@@ -183,42 +174,32 @@
     ip {
       address = "192.168.1.3";
       monitor_link = "yes";
-      nfslock = "(null)";
     }
     fs {
       name = "mount2";
       mountpoint = "/mnt/cluster2";
       device = "/dev/sdb9";
       fstype = "ext3";
-      nfslock = "(null)";
       nfsexport {
         name = "Dummy Export";
         device = "/dev/sdb9";
         path = "/mnt/cluster2";
-        fsid = "(null)";
-        nfslock = "(null)";
         nfsclient {
           name = "Admin group";
           target = "@admin";
           path = "/mnt/cluster2";
-          fsid = "(null)";
-          nfslock = "(null)";
           options = "rw";
         }
         nfsclient {
           name = "User group";
           target = "@users";
           path = "/mnt/cluster2";
-          fsid = "(null)";
-          nfslock = "(null)";
           options = "rw,sync";
         }
         nfsclient {
           name = "red";
           target = "red";
           path = "/mnt/cluster2";
-          fsid = "(null)";
-          nfslock = "(null)";
           options = "rw";
         }
       }
@@ -226,12 +207,10 @@
     script {
       name = "script2";
       file = "/etc/init.d/script2";
-      service_name = "(null)";
     }
     ip {
       address = "192.168.1.4";
       monitor_link = "yes";
-      nfslock = "(null)";
     }
   }
   script {
--- cluster/rgmanager/src/resources/fs.sh	2007/02/15 22:46:00	1.4.2.21
+++ cluster/rgmanager/src/resources/fs.sh	2007/05/03 15:02:47	1.4.2.22
@@ -145,7 +145,7 @@
 	    <content type="boolean"/>
 	</parameter>
 
-	<parameter name="nfslock" inherit="nfslock">
+	<parameter name="nfslock" inherit="service%nfslock">
 	    <longdesc lang="en">
 	        If set and unmounting the file system fails, the node will
 		try to kill lockd and issue reclaims across all remaining
--- cluster/rgmanager/src/resources/nfsclient.sh	2007/02/21 20:54:51	1.3.2.11
+++ cluster/rgmanager/src/resources/nfsclient.sh	2007/05/03 15:02:47	1.3.2.12
@@ -95,7 +95,7 @@
             <content type="string"/>
         </parameter>
 
-        <parameter name="nfslock" inherit="nfsexport%nfslock">
+        <parameter name="nfslock" inherit="service%nfslock">
             <longdesc lang="en">
 	    	This tells us whether the service in question has the
 		NFS lock workarounds enabled.  If so, we always unexport
--- cluster/rgmanager/src/resources/nfsexport.sh	2006/06/16 19:57:52	1.4.2.5
+++ cluster/rgmanager/src/resources/nfsexport.sh	2007/05/03 15:02:47	1.4.2.6
@@ -98,7 +98,7 @@
 	    <content type="string"/>
         </parameter>
 
-        <parameter name="nfslock" inherit="nfslock">
+        <parameter name="nfslock" inherit="service%nfslock">
             <longdesc lang="en">
                 If you can see this, your GUI is broken.
 		This inherits an unspecified nfslock parameter so that
--- cluster/rgmanager/src/utils/clulog.c	2006/08/18 20:35:14	1.1.2.2
+++ cluster/rgmanager/src/utils/clulog.c	2007/05/03 15:02:47	1.1.2.3
@@ -123,6 +123,12 @@
     /* Add two bytes for linefeed and NULL terminator */
     len = strlen(argv[argc-1]) + 2;
     logmsg = (char*)malloc(strlen(argv[argc-1])+2);
+    if (logmsg == NULL) {
+        fprintf(stderr,
+            "clulog: malloc fail err=%d\n", errno);
+        exit(0);
+    }
+
     snprintf(logmsg, len, "%s\n", argv[argc-1]);
 
     if (!cmdline_loglevel) {



             reply	other threads:[~2007-05-03 15:02 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-03 15:02 lhh [this message]
  -- strict thread matches above, loose matches on Subject: below --
2007-05-31 18:58 [Cluster-devel] cluster/rgmanager ChangeLog include/reslist.h lhh
2007-05-31 19:08 lhh
2007-08-02 14:46 lhh
2007-08-02 14:47 lhh
2007-08-02 14:53 lhh
2007-11-26 21:46 lhh

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20070503150256.27023.qmail@sourceware.org \
    --to=lhh@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.