net: Abstract dst->neighbour accesses behind helpers.

dst_{get,set}_neighbour()

Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
David S. Miller
2011-07-17 23:09:49 -07:00
parent 9cbb7ecbcf
commit 69cce1d140
29 changed files with 199 additions and 139 deletions

View File

@@ -37,7 +37,7 @@ struct dst_entry {
unsigned long _metrics;
unsigned long expires;
struct dst_entry *path;
struct neighbour *neighbour;
struct neighbour *_neighbour;
#ifdef CONFIG_XFRM
struct xfrm_state *xfrm;
#else
@@ -86,6 +86,16 @@ struct dst_entry {
};
};
static inline struct neighbour *dst_get_neighbour(struct dst_entry *dst)
{
return dst->_neighbour;
}
static inline void dst_set_neighbour(struct dst_entry *dst, struct neighbour *neigh)
{
dst->_neighbour = neigh;
}
extern u32 *dst_cow_metrics_generic(struct dst_entry *dst, unsigned long old);
extern const u32 dst_default_metrics[RTAX_MAX];
@@ -371,8 +381,10 @@ static inline void dst_rcu_free(struct rcu_head *head)
static inline void dst_confirm(struct dst_entry *dst)
{
if (dst)
neigh_confirm(dst->neighbour);
if (dst) {
struct neighbour *n = dst_get_neighbour(dst);
neigh_confirm(n);
}
}
static inline void dst_link_failure(struct sk_buff *skb)