tipc: simplify small window members' sorting algorithm
authorJon Maloy <jon.maloy@ericsson.com>
Thu, 4 Jan 2018 14:20:45 +0000 (15:20 +0100)
committerDavid S. Miller <davem@davemloft.net>
Fri, 5 Jan 2018 18:37:03 +0000 (13:37 -0500)
We simplify the sorting algorithm in tipc_update_member(). We also make
the remaining conditional call to this function unconditional, since the
same condition now is tested for inside the said function.

Acked-by: Ying Xue <ying.xue@windriver.com>
Signed-off-by: Jon Maloy <jon.maloy@ericsson.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/tipc/group.c

index 0d743b98823fc15a9da04e7dbb247125196f4a94..fb7fe971e51bde5cd0b5c79b504f284fb1c506f0 100644 (file)
@@ -355,12 +355,10 @@ void tipc_group_update_member(struct tipc_member *m, int len)
 
        /* Sort member into small_window members' list */
        list_for_each_entry_safe(_m, tmp, &grp->small_win, small_win) {
-               if (m->window > _m->window)
-                       continue;
-               list_add_tail(&m->small_win, &_m->small_win);
-               return;
+               if (_m->window > m->window)
+                       break;
        }
-       list_add_tail(&m->small_win, &grp->small_win);
+       list_add_tail(&m->small_win, &_m->small_win);
 }
 
 void tipc_group_update_bc_members(struct tipc_group *grp, int len, bool ack)
@@ -837,10 +835,7 @@ void tipc_group_member_evt(struct tipc_group *grp,
                m->instance = instance;
                TIPC_SKB_CB(skb)->orig_member = m->instance;
                tipc_group_proto_xmit(grp, m, GRP_JOIN_MSG, xmitq);
-               if (m->window < ADV_IDLE)
-                       tipc_group_update_member(m, 0);
-               else
-                       list_del_init(&m->small_win);
+               tipc_group_update_member(m, 0);
        } else if (event == TIPC_WITHDRAWN) {
                if (!m)
                        goto drop;