[Ocfs2-commits] jlbec commits r2394 - trunk/fs/ocfs2/dlm

svn-commits at oss.oracle.com svn-commits at oss.oracle.com
Tue Jun 14 17:29:50 CDT 2005


Author: jlbec
Signed-off-by: mfasheh
Date: 2005-06-14 17:29:48 -0500 (Tue, 14 Jun 2005)
New Revision: 2394

Modified:
   trunk/fs/ocfs2/dlm/dlmdomain.c
Log:

o Clear state when waiting for domain join, allowing other nodes to
  proceed.
o Fix for recovery on failed mount.
o Make domain join backoff variable.

Signed-off-by: mfasheh



Modified: trunk/fs/ocfs2/dlm/dlmdomain.c
===================================================================
--- trunk/fs/ocfs2/dlm/dlmdomain.c	2005-06-14 21:48:01 UTC (rev 2393)
+++ trunk/fs/ocfs2/dlm/dlmdomain.c	2005-06-14 22:29:48 UTC (rev 2394)
@@ -906,12 +906,13 @@
 
 	dlm_send_join_asserts(dlm, ctxt->yes_resp_map);
 
+bail:
 	spin_lock(&dlm->spinlock);
 	__dlm_set_joining_node(dlm, DLM_LOCK_RES_OWNER_UNKNOWN);
-	__dlm_print_nodes(dlm);
+	if (!status)
+		__dlm_print_nodes(dlm);
 	spin_unlock(&dlm->spinlock);
 
-bail:
 	if (ctxt) {
 		/* Do we need to send a cancel message to any nodes? */
 		if (status < 0) {
@@ -1079,6 +1080,7 @@
 	}
 
 	do {
+		unsigned int backoff;
 		status = dlm_try_to_join_domain(dlm);
 
 		/* If we're racing another node to the join, then we
@@ -1090,7 +1092,17 @@
 				goto bail;
 			}
 
-			msleep(DLM_DOMAIN_BACKOFF_MS);
+			/*
+			 * <chip> After you!
+			 * <dale> No, after you!
+			 * <chip> I insist!
+			 * <dale> But you first!
+			 * ...
+			 */
+			backoff = (unsigned int)(jiffies & 0x3);
+			backoff *= DLM_DOMAIN_BACKOFF_MS;
+			mlog(0, "backoff %d\n", backoff);
+			msleep(backoff);
 		}
 	} while (status == -EAGAIN);
 



More information about the Ocfs2-commits mailing list