Steven Dake wrote:
> When cross communicating with whitetank, we need to determine a list of
> members for the syncv2 protocol to operate upon.  The reason is that the
> syncv2 capable machines (ie: corosync in whitetank compat mode) may be
> only a subset of the cluster when run with other openais whitetank
> cluster members.
>
> This patch sends determines the membership of the syncv2 members.  It
> relies on the barrier functionality in the regular sync operation to
> ensure that all syncv2 determination messages are received before
> starting its operation.

Hi Steve,

Minor suggestions,

> Index: exec/syncv2.c
> ===================================================================
...
> +static void sync_memb_determine (unsigned int nodeid, const void *msg)
> +{
> +     const struct req_exec_memb_determine_message 
> *req_exec_memb_determine_message = msg;
> +     int found = 0;
> +     int i;
> +
> +     if (memcmp (&req_exec_memb_determine_message->ring_id,
> +             &my_memb_determine_ring_id, sizeof (struct memb_ring_id)) != 0) 
> {
> +
> +             return;
> +     }
> +
> +     my_memb_determine = 1;
> +     for (i = 0; i < my_memb_determine_list_entries; i++) {
> +             if (my_memb_determine_list[i] == nodeid) {
> +                     found = 1;

Slightly more efficient to add "break;" here.

> +             }
> +     }
> +     if (found == 0) {
> +             my_memb_determine_list[my_memb_determine_list_entries] = nodeid;
> +             my_memb_determine_list_entries += 1;

IMHO, it's better (on readability/maintainability fronts) to write
the above two lines like this:

              my_memb_determine_list[my_memb_determine_list_entries++] = nodeid;

Then, you don't have to worry about whether that long index name
is really the same variable that's being incremented on the next line.

> +     }
> +}
...
_______________________________________________
Openais mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/openais

Reply via email to