svn commit: r219844 - head/sbin/hastd

Pawel Jakub Dawidek pjd at FreeBSD.org
Mon Mar 21 21:16:13 UTC 2011


Author: pjd
Date: Mon Mar 21 21:16:12 2011
New Revision: 219844
URL: http://svn.freebsd.org/changeset/base/219844

Log:
  Initialize localcnt on first write. This fixes assertion when we create
  resource, set role to primary, do no writes, then sent it to secondary
  and accept connection from primary.
  
  MFC after:	1 week

Modified:
  head/sbin/hastd/primary.c

Modified: head/sbin/hastd/primary.c
==============================================================================
--- head/sbin/hastd/primary.c	Mon Mar 21 21:14:07 2011	(r219843)
+++ head/sbin/hastd/primary.c	Mon Mar 21 21:16:12 2011	(r219844)
@@ -478,7 +478,7 @@ init_local(struct hast_resource *res)
 	 * that there were no writes yet, so there is no need to synchronize
 	 * anything.
 	 */
-	res->hr_primary_localcnt = 1;
+	res->hr_primary_localcnt = 0;
 	res->hr_primary_remotecnt = 0;
 	if (metadata_write(res) < 0)
 		exit(EX_NOINPUT);
@@ -1093,7 +1093,11 @@ ggate_recv_thread(void *arg)
 			break;
 		case BIO_WRITE:
 			if (res->hr_resuid == 0) {
-				/* This is first write, initialize resuid. */
+				/*
+				 * This is first write, initialize localcnt and
+				 * resuid.
+				 */
+				res->hr_primary_localcnt = 1;
 				(void)init_resuid(res);
 			}
 			for (;;) {


More information about the svn-src-head mailing list