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 fcb07915aaacc244bedc54f660b774c2550b85a5..506aaa565da7f39abd30b8171760db67c55a4362 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);