aboutsummaryrefslogtreecommitdiff
path: root/include/net/ip6_route.h
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2012-06-08 23:24:18 -0700
committerDavid S. Miller <davem@davemloft.net>2012-06-08 23:24:18 -0700
commitfbfe95a42e90b3dd079cc9019ba7d7700feee0f6 (patch)
treef5f16e6efcf1411a47df8b836f669fc452489dd4 /include/net/ip6_route.h
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/net/ip6_route.h')
-rw-r--r--include/net/ip6_route.h17
1 files changed, 13 insertions, 4 deletions
diff --git a/include/net/ip6_route.h b/include/net/ip6_route.h
index 37c1a1ed82c..73d75028812 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)
return (flags >> 3) & 7;
}
-extern void rt6_bind_peer(struct rt6_info *rt,
- int create);
+extern void rt6_bind_peer(struct rt6_info *rt, int create);
-static inline struct inet_peer *rt6_get_peer(struct rt6_info *rt)
+static inline struct inet_peer *__rt6_get_peer(struct rt6_info *rt, int create)
{
if (rt->rt6i_peer)
return rt->rt6i_peer;
- rt6_bind_peer(rt, 0);
+ rt6_bind_peer(rt, create);
return rt->rt6i_peer;
}
+static inline struct inet_peer *rt6_get_peer(struct rt6_info *rt)
+{
+ return __rt6_get_peer(rt, 0);
+}
+
+static inline struct inet_peer *rt6_get_peer_create(struct rt6_info *rt)
+{
+ return __rt6_get_peer(rt, 1);
+}
+
extern void ip6_route_input(struct sk_buff *skb);
extern struct dst_entry * ip6_route_output(struct net *net,