Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > 58cebef081c94cb5f88b9fe2fbddfdc8 > files > 54

openais-0.80.6-28.el5_6.1.src.rpm

Index: exec/totemsrp.c
===================================================================
--- exec/totemsrp.c	(revision 2167)
+++ exec/totemsrp.c	(revision 2168)
@@ -477,6 +477,8 @@
 
 	unsigned int set_aru;
 
+	int old_ring_state_saved;
+
 	int old_ring_state_aru;
 
 	unsigned int old_ring_state_high_seq_received;
@@ -1312,13 +1314,16 @@
  */
 static void old_ring_state_save (struct totemsrp_instance *instance)
 {
-	memcpy (&instance->my_old_ring_id, &instance->my_ring_id,
-		sizeof (struct memb_ring_id));
-	instance->old_ring_state_aru = instance->my_aru;
-	instance->old_ring_state_high_seq_received = instance->my_high_seq_received;
-	log_printf (instance->totemsrp_log_level_debug,
-		"Saving state aru %x high seq received %x\n",
-		instance->my_aru, instance->my_high_seq_received);
+	if (instance->old_ring_state_saved == 0) {
+		instance->old_ring_state_saved = 1;
+		memcpy (&instance->my_old_ring_id, &instance->my_ring_id,
+			sizeof (struct memb_ring_id));
+		instance->old_ring_state_aru = instance->my_aru;
+		instance->old_ring_state_high_seq_received = instance->my_high_seq_received;
+		log_printf (instance->totemsrp_log_level_debug,
+			"Saving state aru %x high seq received %x\n",
+			instance->my_aru, instance->my_high_seq_received);
+	}
 }
 
 static void ring_save (struct totemsrp_instance *instance)
@@ -1348,6 +1353,7 @@
 {
 	log_printf (instance->totemsrp_log_level_debug,
 		"Resetting old ring state\n");
+	instance->old_ring_state_saved = 0;
 }
 
 static void reset_token_timeout (struct totemsrp_instance *instance) {