netns: move net->ipv4.rt_genid to net->rt_genid
This commit prepares the use of rt_genid by both IPv4 and IPv6. Initialization is left in IPv4 part. Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
2885da7296
commit
b42664f898
@@ -102,6 +102,7 @@ struct net {
|
|||||||
#endif
|
#endif
|
||||||
struct netns_ipvs *ipvs;
|
struct netns_ipvs *ipvs;
|
||||||
struct sock *diag_nlsk;
|
struct sock *diag_nlsk;
|
||||||
|
atomic_t rt_genid;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -300,5 +301,14 @@ static inline void unregister_net_sysctl_table(struct ctl_table_header *header)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static inline int rt_genid(struct net *net)
|
||||||
|
{
|
||||||
|
return atomic_read(&net->rt_genid);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void rt_genid_bump(struct net *net)
|
||||||
|
{
|
||||||
|
atomic_inc(&net->rt_genid);
|
||||||
|
}
|
||||||
|
|
||||||
#endif /* __NET_NET_NAMESPACE_H */
|
#endif /* __NET_NET_NAMESPACE_H */
|
||||||
|
@@ -65,7 +65,6 @@ struct netns_ipv4 {
|
|||||||
unsigned int sysctl_ping_group_range[2];
|
unsigned int sysctl_ping_group_range[2];
|
||||||
long sysctl_tcp_mem[3];
|
long sysctl_tcp_mem[3];
|
||||||
|
|
||||||
atomic_t rt_genid;
|
|
||||||
atomic_t dev_addr_genid;
|
atomic_t dev_addr_genid;
|
||||||
|
|
||||||
#ifdef CONFIG_IP_MROUTE
|
#ifdef CONFIG_IP_MROUTE
|
||||||
|
@@ -202,11 +202,6 @@ EXPORT_SYMBOL(ip_tos2prio);
|
|||||||
static DEFINE_PER_CPU(struct rt_cache_stat, rt_cache_stat);
|
static DEFINE_PER_CPU(struct rt_cache_stat, rt_cache_stat);
|
||||||
#define RT_CACHE_STAT_INC(field) __this_cpu_inc(rt_cache_stat.field)
|
#define RT_CACHE_STAT_INC(field) __this_cpu_inc(rt_cache_stat.field)
|
||||||
|
|
||||||
static inline int rt_genid(struct net *net)
|
|
||||||
{
|
|
||||||
return atomic_read(&net->ipv4.rt_genid);
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef CONFIG_PROC_FS
|
#ifdef CONFIG_PROC_FS
|
||||||
static void *rt_cache_seq_start(struct seq_file *seq, loff_t *pos)
|
static void *rt_cache_seq_start(struct seq_file *seq, loff_t *pos)
|
||||||
{
|
{
|
||||||
@@ -449,7 +444,7 @@ static inline bool rt_is_expired(const struct rtable *rth)
|
|||||||
|
|
||||||
void rt_cache_flush(struct net *net)
|
void rt_cache_flush(struct net *net)
|
||||||
{
|
{
|
||||||
atomic_inc(&net->ipv4.rt_genid);
|
rt_genid_bump(net);
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct neighbour *ipv4_neigh_lookup(const struct dst_entry *dst,
|
static struct neighbour *ipv4_neigh_lookup(const struct dst_entry *dst,
|
||||||
@@ -2506,7 +2501,7 @@ static __net_initdata struct pernet_operations sysctl_route_ops = {
|
|||||||
|
|
||||||
static __net_init int rt_genid_init(struct net *net)
|
static __net_init int rt_genid_init(struct net *net)
|
||||||
{
|
{
|
||||||
atomic_set(&net->ipv4.rt_genid, 0);
|
atomic_set(&net->rt_genid, 0);
|
||||||
get_random_bytes(&net->ipv4.dev_addr_genid,
|
get_random_bytes(&net->ipv4.dev_addr_genid,
|
||||||
sizeof(net->ipv4.dev_addr_genid));
|
sizeof(net->ipv4.dev_addr_genid));
|
||||||
return 0;
|
return 0;
|
||||||
|
Reference in New Issue
Block a user