[Ocfs2-commits] khackel commits r1697 - trunk/cluster

svn-commits at oss.oracle.com svn-commits at oss.oracle.com
Tue Dec 7 20:17:43 CST 2004


Author: khackel
Date: 2004-12-07 20:17:42 -0600 (Tue, 07 Dec 2004)
New Revision: 1697

Modified:
   trunk/cluster/dlmmod.c
   trunk/cluster/dlmrecovery.c
   trunk/cluster/heartbeat.c
Log:
fixed a bug in heartbeat callbacks.  this should at least get you to a point where an ls will not hang in kernel on one of the nodes.  well, it will still hang.  but it will be killable at least! ;-)

Modified: trunk/cluster/dlmmod.c
===================================================================
--- trunk/cluster/dlmmod.c	2004-12-08 01:34:04 UTC (rev 1696)
+++ trunk/cluster/dlmmod.c	2004-12-08 02:17:42 UTC (rev 1697)
@@ -1116,6 +1116,9 @@
 	tmpret = hb_fill_node_map(group, dlm->node_map, NM_MAX_NODES);
 	if (tmpret)
 		goto error;
+	dlmprintk("hb_fill_node_map returned node map: %08x%08x%08x%08x%08x%08x%08x%08x\n",
+		  dlm->node_map[0], dlm->node_map[1], dlm->node_map[2], dlm->node_map[3],
+		  dlm->node_map[4], dlm->node_map[5], dlm->node_map[6], dlm->node_map[7]);
 
 
 #if 0

Modified: trunk/cluster/dlmrecovery.c
===================================================================
--- trunk/cluster/dlmrecovery.c	2004-12-08 01:34:04 UTC (rev 1696)
+++ trunk/cluster/dlmrecovery.c	2004-12-08 02:17:42 UTC (rev 1697)
@@ -607,8 +607,10 @@
 
 	if (!test_bit(idx, dlm->node_map))
 		printk("node %u already removed from nodemap!\n", idx);
-	else
+	else {
+		printk("node %u being removed from nodemap!\n", idx);
 		clear_bit(idx, dlm->node_map);
+	}
 	
 	if (test_bit(idx, dlm->recovery_map))
 		printk("node %u already added to recovery map!\n", idx);
@@ -632,8 +634,10 @@
 	} else {
 		if (test_bit(idx, dlm->node_map))
 			printk("node %u already in node map!!!\n", idx);
-		else 
+		else {
+			dlmprintk("node %u being added to node map!!!\n", idx);
 			set_bit(idx, dlm->node_map);
+		}
 	}
 
 	spin_unlock(&dlm->spinlock);

Modified: trunk/cluster/heartbeat.c
===================================================================
--- trunk/cluster/heartbeat.c	2004-12-08 01:34:04 UTC (rev 1696)
+++ trunk/cluster/heartbeat.c	2004-12-08 02:17:42 UTC (rev 1697)
@@ -135,14 +135,14 @@
 	printk("hb_do_node_down: group=%lu, node=%lu\n", group->i_ino, node->i_ino);
 	printk("NOT removing node from group\n");
 	//ret = nm_remove_node_from_group(group, node);
-	hb_do_callbacks(HB_NODE_DOWN_CB, group, node, 0);
+	hb_do_callbacks(HB_NODE_DOWN_CB, group, node, idx);
 	return 0;
 }
 
 static int hb_do_node_up(struct inode *group, struct inode *node, int idx)
 {
 	printk("hb_do_node_up: group=%lu, node=%lu\n", group->i_ino, node->i_ino);
-	hb_do_callbacks(HB_NODE_UP_CB, group, node, 0);
+	hb_do_callbacks(HB_NODE_UP_CB, group, node, idx);
 	return 0;
 }
 
@@ -259,7 +259,7 @@
 				node->i_atime = hb_block->time;
 				slot->last_time = hb_block->time;
 				slot->margin = HB_DISK_MARGIN;
-				hb_do_callbacks(HB_NODE_RESPONDED_CB, group, node, HB_TYPE_DISK);
+				hb_do_callbacks(HB_NODE_RESPONDED_CB, group, node, idx);
 			} else {
 				slot->margin--;
 				printk("node %d missed.  margin=%d\n", ino, slot->margin);



More information about the Ocfs2-commits mailing list