aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2012-06-09 02:24:18 -0400
committerDavid S. Miller <davem@davemloft.net>2012-06-09 02:24:18 -0400
commitfbfe95a42e90b3dd079cc9019ba7d7700feee0f6 (patch)
treef5f16e6efcf1411a47df8b836f669fc452489dd4 /include
parent7123aaa3a1416529ce461e98108e6b343b294643 (diff)
inet: Create and use rt{,6}_get_peer_create().
There's a lot of places that open-code rt{,6}_get_peer() only because they want to set 'create' to one. So add an rt{,6}_get_peer_create() for their sake. There were also a few spots open-coding plain rt{,6}_get_peer() and those are transformed here as well. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r--include/net/ip6_route.h17
-rw-r--r--include/net/route.h14
2 files changed, 25 insertions, 6 deletions
diff --git a/include/net/ip6_route.h b/include/net/ip6_route.h
index 37c1a1ed82c1..73d750288121 100644
--- a/include/net/ip6_route.h
+++ b/include/net/ip6_route.h
@@ -53,18 +53,27 @@ static inline unsigned int rt6_flags2srcprefs(int flags)
53 return (flags >> 3) & 7; 53 return (flags >> 3) & 7;
54} 54}
55 55
56extern void rt6_bind_peer(struct rt6_info *rt, 56extern void rt6_bind_peer(struct rt6_info *rt, int create);
57 int create);
58 57
59static inline struct inet_peer *rt6_get_peer(struct rt6_info *rt) 58static inline struct inet_peer *__rt6_get_peer(struct rt6_info *rt, int create)
60{ 59{
61 if (rt->rt6i_peer) 60 if (rt->rt6i_peer)
62 return rt->rt6i_peer; 61 return rt->rt6i_peer;
63 62
64 rt6_bind_peer(rt, 0); 63 rt6_bind_peer(rt, create);
65 return rt->rt6i_peer; 64 return rt->rt6i_peer;
66} 65}
67 66
67static inline struct inet_peer *rt6_get_peer(struct rt6_info *rt)
68{
69 return __rt6_get_peer(rt, 0);
70}
71
72static inline struct inet_peer *rt6_get_peer_create(struct rt6_info *rt)
73{
74 return __rt6_get_peer(rt, 1);
75}
76
68extern void ip6_route_input(struct sk_buff *skb); 77extern void ip6_route_input(struct sk_buff *skb);
69 78
70extern struct dst_entry * ip6_route_output(struct net *net, 79extern struct dst_entry * ip6_route_output(struct net *net,
diff --git a/include/net/route.h b/include/net/route.h
index ed2b78e2375d..433fc6c1d404 100644
--- a/include/net/route.h
+++ b/include/net/route.h
@@ -296,15 +296,25 @@ static inline struct rtable *ip_route_newports(struct flowi4 *fl4, struct rtable
296 296
297extern void rt_bind_peer(struct rtable *rt, __be32 daddr, int create); 297extern void rt_bind_peer(struct rtable *rt, __be32 daddr, int create);
298 298
299static inline struct inet_peer *rt_get_peer(struct rtable *rt, __be32 daddr) 299static inline struct inet_peer *__rt_get_peer(struct rtable *rt, __be32 daddr, int create)
300{ 300{
301 if (rt->peer) 301 if (rt->peer)
302 return rt->peer; 302 return rt->peer;
303 303
304 rt_bind_peer(rt, daddr, 0); 304 rt_bind_peer(rt, daddr, create);
305 return rt->peer; 305 return rt->peer;
306} 306}
307 307
308static inline struct inet_peer *rt_get_peer(struct rtable *rt, __be32 daddr)
309{
310 return __rt_get_peer(rt, daddr, 0);
311}
312
313static inline struct inet_peer *rt_get_peer_create(struct rtable *rt, __be32 daddr)
314{
315 return __rt_get_peer(rt, daddr, 1);
316}
317
308static inline int inet_iif(const struct sk_buff *skb) 318static inline int inet_iif(const struct sk_buff *skb)
309{ 319{
310 return skb_rtable(skb)->rt_iif; 320 return skb_rtable(skb)->rt_iif;