OSDN Git Service

tipc: only create header copy for name distr messages
authorErik Hugne <erik.hugne@ericsson.com>
Fri, 27 Feb 2015 07:56:54 +0000 (08:56 +0100)
committerDavid S. Miller <davem@davemloft.net>
Fri, 27 Feb 2015 23:18:47 +0000 (18:18 -0500)
The TIPC name distributor pushes topology updates to the cluster
neighbors. Currently this is done in a unicast manner, and the
skb holding the update is cloned for each cluster member. This
is unnecessary, as we only modify the destnode field in the header
so we change it to do pskb_copy instead.

Signed-off-by: Erik Hugne <erik.hugne@ericsson.com>
Reviewed-by: Jon Maloy <jon.maloy@ericsson.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/tipc/name_distr.c

index fcb0791..506aaa5 100644 (file)
@@ -98,7 +98,7 @@ void named_cluster_distribute(struct net *net, struct sk_buff *skb)
                        continue;
                if (!tipc_node_active_links(node))
                        continue;
-               oskb = skb_copy(skb, GFP_ATOMIC);
+               oskb = pskb_copy(skb, GFP_ATOMIC);
                if (!oskb)
                        break;
                msg_set_destnode(buf_msg(oskb), dnode);