summaryrefslogtreecommitdiff
path: root/net/ipv6/udp.c
diff options
context:
space:
mode:
authorEric Dumazet <eric.dumazet@gmail.com>2011-07-19 20:18:36 +0000
committerDavid S. Miller <davem@davemloft.net>2011-07-21 21:24:25 -0700
commit21efcfa0ff27776902a8a15e810147be4d937d69 (patch)
treea0ab4f071d257c4faa0bfa52051b4039ce3d1f96 /net/ipv6/udp.c
parent61463a30f65225e19e68f59dbd7b888bb308ec99 (diff)
downloadlinux-3.10-21efcfa0ff27776902a8a15e810147be4d937d69.tar.gz
linux-3.10-21efcfa0ff27776902a8a15e810147be4d937d69.tar.bz2
linux-3.10-21efcfa0ff27776902a8a15e810147be4d937d69.zip
ipv6: unshare inetpeers
We currently cow metrics a bit too soon in IPv6 case : All routes are tied to a single inetpeer entry. Change ip6_rt_copy() to get destination address as second argument, so that we fill rt6i_dst before the dst_copy_metrics() call. icmp6_dst_alloc() must set rt6i_dst before calling dst_metric_set(), or else the cow is done while rt6i_dst is still NULL. If orig route points to readonly metrics, we can share the pointer instead of performing the memory allocation and copy. Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6/udp.c')
0 files changed, 0 insertions, 0 deletions