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:
@@ -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)
|
||||
|
Reference in New Issue
Block a user