提交 c6d2d445 编写于 作者: H Hans Schillstrom 提交者: Simon Horman

IPVS: netns, final patch enabling network name space.

all init_net removed, (except for some alloc related
that needs to be there)
Signed-off-by: NHans Schillstrom <hans.schillstrom@ericsson.com>
Acked-by: NJulian Anastasov <ja@ssi.bg>
Signed-off-by: NSimon Horman <horms@verge.net.au>
上级 4a98480b
...@@ -582,9 +582,6 @@ static int __net_init __ip_vs_app_init(struct net *net) ...@@ -582,9 +582,6 @@ static int __net_init __ip_vs_app_init(struct net *net)
{ {
struct netns_ipvs *ipvs = net_ipvs(net); struct netns_ipvs *ipvs = net_ipvs(net);
if (!net_eq(net, &init_net)) /* netns not enabled yet */
return -EPERM;
INIT_LIST_HEAD(&ipvs->app_list); INIT_LIST_HEAD(&ipvs->app_list);
__mutex_init(&ipvs->app_mutex, "ipvs->app_mutex", &ipvs->app_key); __mutex_init(&ipvs->app_mutex, "ipvs->app_mutex", &ipvs->app_key);
proc_net_fops_create(net, "ip_vs_app", 0, &ip_vs_app_fops); proc_net_fops_create(net, "ip_vs_app", 0, &ip_vs_app_fops);
......
...@@ -1234,8 +1234,6 @@ int __net_init __ip_vs_conn_init(struct net *net) ...@@ -1234,8 +1234,6 @@ int __net_init __ip_vs_conn_init(struct net *net)
{ {
struct netns_ipvs *ipvs = net_ipvs(net); struct netns_ipvs *ipvs = net_ipvs(net);
if (!net_eq(net, &init_net)) /* netns not enabled yet */
return -EPERM;
atomic_set(&ipvs->conn_count, 0); atomic_set(&ipvs->conn_count, 0);
proc_net_fops_create(net, "ip_vs_conn", 0, &ip_vs_conn_fops); proc_net_fops_create(net, "ip_vs_conn", 0, &ip_vs_conn_fops);
...@@ -1245,9 +1243,6 @@ int __net_init __ip_vs_conn_init(struct net *net) ...@@ -1245,9 +1243,6 @@ int __net_init __ip_vs_conn_init(struct net *net)
static void __net_exit __ip_vs_conn_cleanup(struct net *net) static void __net_exit __ip_vs_conn_cleanup(struct net *net)
{ {
if (!net_eq(net, &init_net)) /* netns not enabled yet */
return;
/* flush all the connection entries first */ /* flush all the connection entries first */
ip_vs_conn_flush(net); ip_vs_conn_flush(net);
proc_net_remove(net, "ip_vs_conn"); proc_net_remove(net, "ip_vs_conn");
......
...@@ -1877,10 +1877,6 @@ static int __net_init __ip_vs_init(struct net *net) ...@@ -1877,10 +1877,6 @@ static int __net_init __ip_vs_init(struct net *net)
{ {
struct netns_ipvs *ipvs; struct netns_ipvs *ipvs;
if (!net_eq(net, &init_net)) {
pr_err("The final patch for enabling netns is missing\n");
return -EPERM;
}
ipvs = net_generic(net, ip_vs_net_id); ipvs = net_generic(net, ip_vs_net_id);
if (ipvs == NULL) { if (ipvs == NULL) {
pr_err("%s(): no memory.\n", __func__); pr_err("%s(): no memory.\n", __func__);
......
...@@ -2617,6 +2617,7 @@ static struct genl_family ip_vs_genl_family = { ...@@ -2617,6 +2617,7 @@ static struct genl_family ip_vs_genl_family = {
.name = IPVS_GENL_NAME, .name = IPVS_GENL_NAME,
.version = IPVS_GENL_VERSION, .version = IPVS_GENL_VERSION,
.maxattr = IPVS_CMD_MAX, .maxattr = IPVS_CMD_MAX,
.netnsok = true, /* Make ipvsadm to work on netns */
}; };
/* Policy used for first-level command attributes */ /* Policy used for first-level command attributes */
...@@ -3483,9 +3484,6 @@ int __net_init __ip_vs_control_init(struct net *net) ...@@ -3483,9 +3484,6 @@ int __net_init __ip_vs_control_init(struct net *net)
struct netns_ipvs *ipvs = net_ipvs(net); struct netns_ipvs *ipvs = net_ipvs(net);
struct ctl_table *tbl; struct ctl_table *tbl;
if (!net_eq(net, &init_net)) /* netns not enabled yet */
return -EPERM;
atomic_set(&ipvs->dropentry, 0); atomic_set(&ipvs->dropentry, 0);
spin_lock_init(&ipvs->dropentry_lock); spin_lock_init(&ipvs->dropentry_lock);
spin_lock_init(&ipvs->droppacket_lock); spin_lock_init(&ipvs->droppacket_lock);
...@@ -3578,9 +3576,6 @@ static void __net_exit __ip_vs_control_cleanup(struct net *net) ...@@ -3578,9 +3576,6 @@ static void __net_exit __ip_vs_control_cleanup(struct net *net)
{ {
struct netns_ipvs *ipvs = net_ipvs(net); struct netns_ipvs *ipvs = net_ipvs(net);
if (!net_eq(net, &init_net)) /* netns not enabled yet */
return;
ip_vs_trash_cleanup(net); ip_vs_trash_cleanup(net);
ip_vs_kill_estimator(net, ipvs->tot_stats); ip_vs_kill_estimator(net, ipvs->tot_stats);
cancel_delayed_work_sync(&ipvs->defense_work); cancel_delayed_work_sync(&ipvs->defense_work);
......
...@@ -203,9 +203,6 @@ static int __net_init __ip_vs_estimator_init(struct net *net) ...@@ -203,9 +203,6 @@ static int __net_init __ip_vs_estimator_init(struct net *net)
{ {
struct netns_ipvs *ipvs = net_ipvs(net); struct netns_ipvs *ipvs = net_ipvs(net);
if (!net_eq(net, &init_net)) /* netns not enabled yet */
return -EPERM;
INIT_LIST_HEAD(&ipvs->est_list); INIT_LIST_HEAD(&ipvs->est_list);
spin_lock_init(&ipvs->est_lock); spin_lock_init(&ipvs->est_lock);
setup_timer(&ipvs->est_timer, estimation_timer, (unsigned long)net); setup_timer(&ipvs->est_timer, estimation_timer, (unsigned long)net);
......
...@@ -413,9 +413,6 @@ static int __net_init __ip_vs_ftp_init(struct net *net) ...@@ -413,9 +413,6 @@ static int __net_init __ip_vs_ftp_init(struct net *net)
int i, ret; int i, ret;
struct ip_vs_app *app = &ip_vs_ftp; struct ip_vs_app *app = &ip_vs_ftp;
if (!net_eq(net, &init_net)) /* netns not enabled yet */
return -EPERM;
ret = register_ip_vs_app(net, app); ret = register_ip_vs_app(net, app);
if (ret) if (ret)
return ret; return ret;
...@@ -442,9 +439,6 @@ static void __ip_vs_ftp_exit(struct net *net) ...@@ -442,9 +439,6 @@ static void __ip_vs_ftp_exit(struct net *net)
{ {
struct ip_vs_app *app = &ip_vs_ftp; struct ip_vs_app *app = &ip_vs_ftp;
if (!net_eq(net, &init_net)) /* netns not enabled yet */
return;
unregister_ip_vs_app(net, app); unregister_ip_vs_app(net, app);
} }
......
...@@ -1659,9 +1659,6 @@ static int __net_init __ip_vs_sync_init(struct net *net) ...@@ -1659,9 +1659,6 @@ static int __net_init __ip_vs_sync_init(struct net *net)
{ {
struct netns_ipvs *ipvs = net_ipvs(net); struct netns_ipvs *ipvs = net_ipvs(net);
if (!net_eq(net, &init_net)) /* netns not enabled yet */
return -EPERM;
INIT_LIST_HEAD(&ipvs->sync_queue); INIT_LIST_HEAD(&ipvs->sync_queue);
spin_lock_init(&ipvs->sync_lock); spin_lock_init(&ipvs->sync_lock);
spin_lock_init(&ipvs->sync_buff_lock); spin_lock_init(&ipvs->sync_buff_lock);
...@@ -1674,8 +1671,6 @@ static int __net_init __ip_vs_sync_init(struct net *net) ...@@ -1674,8 +1671,6 @@ static int __net_init __ip_vs_sync_init(struct net *net)
static void __ip_vs_sync_cleanup(struct net *net) static void __ip_vs_sync_cleanup(struct net *net)
{ {
if (!net_eq(net, &init_net)) /* netns not enabled yet */
return;
stop_sync_thread(net, IP_VS_STATE_MASTER); stop_sync_thread(net, IP_VS_STATE_MASTER);
stop_sync_thread(net, IP_VS_STATE_BACKUP); stop_sync_thread(net, IP_VS_STATE_BACKUP);
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册