diff options
author | Herbert Xu <herbert@gondor.apana.org.au> | 2006-07-30 20:19:33 -0700 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2006-08-02 13:38:14 -0700 |
commit | 497c615abad7ee81994dd592194535aea2aad617 (patch) | |
tree | 86bb23e49071ea1bc867232d576b2d4ece31eb4d /include/net/ipv6.h | |
parent | 679e898a4742d4a4a47430b67fd68a789a73dcfd (diff) | |
download | op-kernel-dev-497c615abad7ee81994dd592194535aea2aad617.zip op-kernel-dev-497c615abad7ee81994dd592194535aea2aad617.tar.gz |
[IPV6]: Audit all ip6_dst_lookup/ip6_dst_store calls
The current users of ip6_dst_lookup can be divided into two classes:
1) The caller holds no locks and is in user-context (UDP).
2) The caller does not want to lookup the dst cache at all.
The second class covers everyone except UDP because most people do
the cache lookup directly before calling ip6_dst_lookup. This patch
adds ip6_sk_dst_lookup for the first class.
Similarly ip6_dst_store users can be divded into those that need to
take the socket dst lock and those that don't. This patch adds
__ip6_dst_store for those (everyone except UDP/datagram) that don't
need an extra lock.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/ipv6.h')
-rw-r--r-- | include/net/ipv6.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/net/ipv6.h b/include/net/ipv6.h index a8fdf79..ece7e8a 100644 --- a/include/net/ipv6.h +++ b/include/net/ipv6.h @@ -468,6 +468,9 @@ extern void ip6_flush_pending_frames(struct sock *sk); extern int ip6_dst_lookup(struct sock *sk, struct dst_entry **dst, struct flowi *fl); +extern int ip6_sk_dst_lookup(struct sock *sk, + struct dst_entry **dst, + struct flowi *fl); /* * skb processing functions |