diff options
author | Eric Dumazet <eric.dumazet@gmail.com> | 2011-07-19 20:18:36 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-07-21 21:24:25 -0700 |
commit | 21efcfa0ff27776902a8a15e810147be4d937d69 (patch) | |
tree | a0ab4f071d257c4faa0bfa52051b4039ce3d1f96 /net/ipv6/udp.c | |
parent | 61463a30f65225e19e68f59dbd7b888bb308ec99 (diff) | |
download | blackbird-op-linux-21efcfa0ff27776902a8a15e810147be4d937d69.tar.gz blackbird-op-linux-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