The commit is pushed to "branch-rh7-3.10.0-229.7.2.vz7.9.x-ovz" and will appear 
at https://src.openvz.org/scm/ovz/vzkernel.git
after rh7-3.10.0-229.7.2.vz7.8.9
------>
commit 2432089253f956d908a60a9422de7c484843f52d
Author: Stanislav Kinsburskiy <skinsbur...@odin.com>
Date:   Tue Sep 22 17:49:23 2015 +0400

    venet: remove per-net hooks and related code
    
    Patchset description:
    This series add venet device creation and destruction support via netlink.
    It also removes device creation via per-net init hook.
    
    https://jira.sw.ru/browse/PSBM-23441
    
    v3: -ENOTSUP replaced with -ENOSYS. -ENOTSUP doesn't exist.
    
    v2: return -ENOTSUP in case of attempt to create a venet device in nested
    namespace.
    
    Stanislav Kinsburskiy (3):
          venet: fix false positive return code in case of error in venet_init()
          venet: add newlink and dellink callbacks to rtnetlink operations
          venet: remove per-net hooks and related code
    
    =====================================
    This patch description:
    
    Venet device is now constructed via netlink interface.
    
    https://jira.sw.ru/browse/PSBM-23441
    
    Signed-off-by: Stanislav Kinsburskiy <skinsbur...@parallels.com>
    Acked-by: Andrew Vagin <ava...@odin.com>
---
 drivers/net/venetdev.c | 79 +++-----------------------------------------------
 1 file changed, 4 insertions(+), 75 deletions(-)

diff --git a/drivers/net/venetdev.c b/drivers/net/venetdev.c
index fb3ef1e..04d82dc 100644
--- a/drivers/net/venetdev.c
+++ b/drivers/net/venetdev.c
@@ -1112,67 +1112,6 @@ static struct cftype venet_cftypes[] = {
        { }
 };
 
-static int venet_dev_start(struct ve_struct *ve)
-{
-       struct net_device *dev_venet;
-       int err;
-
-       dev_venet = alloc_netdev(0, "venet%d", venet_setup);
-       if (!dev_venet)
-               return -ENOMEM;
-       dev_net_set(dev_venet, ve->ve_netns);
-       err = dev_alloc_name(dev_venet, dev_venet->name);
-       if (err<0)
-               goto err;
-       dev_venet->features |= NETIF_F_NETNS_LOCAL;
-       dev_venet->rtnl_link_ops = &venet_link_ops;
-       dev_venet->rtnl_link_state = RTNL_LINK_INITIALIZING;
-       if ((err = register_netdev(dev_venet)) != 0)
-               goto err;
-       ve->_venet_dev = dev_venet;
-       return 0;
-err:
-       free_netdev(dev_venet);
-       printk(KERN_ERR "VENET initialization error err=%d\n", err);
-       return err;
-}
-
-static __net_init int venet_init_net(struct net *net)
-{
-       struct ve_struct *env = net->owner_ve;
-       int err;
-
-       if (env->ve_netns && net != env->ve_netns) {
-               /* Don't create venet-s in sub net namespaces */
-               return 0;
-       }
-
-       if (env->veip)
-               return -EEXIST;
-
-       env->ve_netns = net;
-
-       err = veip_start(env);
-       if (err != 0)
-               goto err;
-
-       err = venet_dev_start(env);
-       if (err)
-               goto err_free;
-
-       return 0;
-
-err_free:
-       veip_stop(env);
-err:
-       env->ve_netns = NULL;
-       return err;
-}
-
-static struct pernet_operations venet_net_ops = {
-       .init = venet_init_net,
-};
-
 /*
  * VE context dropping is happening earlier than
  * pernet_operations::exit method so we can't
@@ -1272,20 +1211,14 @@ __init int venet_init(void)
        for (i = 0; i < VEIP_HASH_SZ; i++)
                INIT_HLIST_HEAD(ip_entry_hash_table + i);
 
-       err = register_pernet_device(&venet_net_ops);
-       if (err)
-               goto err_netdev;
-
        de = proc_create("veip", S_IFREG | S_IRUSR, proc_vz_dir,
                        &proc_veip_operations);
-       if (!de) {
-               err = -EINVAL;
-               goto err_proc;
-       }
+       if (!de)
+               return -EINVAL;
 
        err = cgroup_add_cftypes(&ve_subsys, venet_cftypes);
        if (err)
-               goto err_cgroup;
+               goto err_proc;
 
        vzioctl_register(&venetcalls);
        vzmon_register_veaddr_print_cb(veaddr_seq_print);
@@ -1293,11 +1226,8 @@ __init int venet_init(void)
 
        return rtnl_link_register(&venet_link_ops);
 
-err_cgroup:
-       remove_proc_entry("veip", proc_vz_dir);
 err_proc:
-       unregister_pernet_device(&venet_net_ops);
-err_netdev:
+       remove_proc_entry("veip", proc_vz_dir);
        return err;
 }
 
@@ -1306,7 +1236,6 @@ __exit void venet_exit(void)
        cgroup_rm_cftypes(&ve_subsys, venet_cftypes);
        vzmon_unregister_veaddr_print_cb(veaddr_seq_print);
        vzioctl_unregister(&venetcalls);
-       unregister_pernet_device(&venet_net_ops);
        remove_proc_entry("veip", proc_vz_dir);
        veip_cleanup();
 
_______________________________________________
Devel mailing list
Devel@openvz.org
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to