The commit is pushed to "branch-rh7-3.10.0-327.10.1.vz7.12.x-ovz" and will 
appear at https://src.openvz.org/scm/ovz/vzkernel.git
after rh7-3.10.0-327.10.1.vz7.12.3
------>
commit 5291af801f9adbed802250b2effdc8f50c24c13e
Author: Pavel Tikhomirov <[email protected]>
Date:   Thu Mar 24 19:53:28 2016 +0400

    vzprivnet: Rework proc structure
    
    Port diff-vz-privnet-rework-proc-layout
      vzprivnet: Rework proc structure
    
      All the files are now in /proc/vz/privnet.
      Legacy /proc/net/ip_vzprivnet file is a symlink on the
      /proc/vz/privnet/legacy one.
    
      Signed-off-by: Pavel Emelyanov <[email protected]>
    
    Signed-off-by: Pavel Tikhomirov <[email protected]>
---
 net/ipv4/netfilter/ip_vzprivnet.c | 34 ++++++++++++++++++++++++++++------
 1 file changed, 28 insertions(+), 6 deletions(-)

diff --git a/net/ipv4/netfilter/ip_vzprivnet.c 
b/net/ipv4/netfilter/ip_vzprivnet.c
index 33db6d0..fa64a79 100644
--- a/net/ipv4/netfilter/ip_vzprivnet.c
+++ b/net/ipv4/netfilter/ip_vzprivnet.c
@@ -476,26 +476,48 @@ static struct file_operations proc_vzprivnet_ops = {
        .write   = vzpriv_write,
 };
 
+static struct proc_dir_entry *vzpriv_proc_dir;
+
 static int __init iptable_vzprivnet_init(void)
 {
-       int err;
+       int err = -ENOMEM;
        struct proc_dir_entry *proc;
 
-       proc = proc_net_fops_create(&init_net, VZPRIV_PROCNAME, 0640, 
&proc_vzprivnet_ops);
-       if (!proc)
-               return -ENOMEM;
+       vzpriv_proc_dir = proc_mkdir("privnet", proc_vz_dir);
+       if (vzpriv_proc_dir == NULL)
+               goto err_mkdir;
+
+       proc = proc_create("legacy", 0644,
+                       vzpriv_proc_dir, &proc_vzprivnet_ops);
+       if (proc == NULL)
+               goto err_legacy;
+
+       proc = proc_symlink(VZPRIV_PROCNAME, init_net.proc_net, 
"/proc/vz/privnet/legacy");
+       if (proc == NULL)
+               goto err_link;
 
        err = nf_register_hook(&vzprivnet_ops);
        if (err)
-               proc_net_remove(&init_net, VZPRIV_PROCNAME);
+               goto err_reg;
+
+       return 0;
 
+err_reg:
+       remove_proc_entry(VZPRIV_PROCNAME, init_net.proc_net);
+err_link:
+       remove_proc_entry("legacy", vzpriv_proc_dir);
+err_legacy:
+       remove_proc_entry("privnet", proc_vz_dir);
+err_mkdir:
        return err;
 }
 
 static void __exit iptable_vzprivnet_exit(void)
 {
        nf_unregister_hook(&vzprivnet_ops);
-       proc_net_remove(&init_net, VZPRIV_PROCNAME);
+       remove_proc_entry(VZPRIV_PROCNAME, init_net.proc_net);
+       remove_proc_entry("legacy", vzpriv_proc_dir);
+       remove_proc_entry("privnet", proc_vz_dir);
        vzprivnet_cleanup();
 }
 
_______________________________________________
Devel mailing list
[email protected]
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to