Commit b42664f8 authored by Nicolas Dichtel's avatar Nicolas Dichtel Committed by David S. Miller

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: default avatarNicolas Dichtel <nicolas.dichtel@6wind.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 2885da72
...@@ -102,6 +102,7 @@ struct net { ...@@ -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) ...@@ -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 { ...@@ -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); ...@@ -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) ...@@ -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 = { ...@@ -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;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment