Previously cpg would order config changes differently after a config
change happened. Now we sort config change additions at node add times.
Regards
-steve
Index: services/cpg.c
===================================================================
--- services/cpg.c (revision 2201)
+++ services/cpg.c (working copy)
@@ -648,7 +648,10 @@
int reason)
{
struct process_info *pi;
+ struct process_info *pi_entry;
mar_cpg_address_t notify_info;
+ struct list_head *list;
+ struct list_head *list_to_add = NULL;
if (process_info_find (name, pid, nodeid) != NULL) {
return ;
@@ -662,8 +665,23 @@
pi->pid = pid;
memcpy(&pi->group, name, sizeof(*name));
list_init(&pi->list);
- list_add(&pi->list, &process_info_list_head);
+ /*
+ * Insert new process in sorted order so synchronization works properly
+ */
+ list_to_add = &process_info_list_head;
+ for (list = process_info_list_head.next; list != &process_info_list_head; list = list->next) {
+
+ pi_entry = list_entry(list, struct process_info, list);
+ if (pi_entry->nodeid > pi->nodeid ||
+ (pi_entry->nodeid == pi->nodeid && pi_entry->pid > pi->pid)) {
+
+ break;
+ }
+ list_to_add = list;
+ }
+ list_splice (&pi->list, list_to_add);
+
notify_info.pid = pi->pid;
notify_info.nodeid = nodeid;
notify_info.reason = reason;
_______________________________________________
Openais mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/openais