[AF_KEY]: Fix oops by converting to proc_net_*().
authorDavid S. Miller <davem@davemloft.net>
Wed, 27 Feb 2008 06:20:44 +0000 (22:20 -0800)
committerDavid S. Miller <davem@davemloft.net>
Wed, 27 Feb 2008 06:23:31 +0000 (22:23 -0800)
To make sure the procfs visibility occurs after the ->proc_fs ops are
setup, use proc_net_fops_create() and proc_net_remove().

This also fixes an OOPS after module unload in that the name string
for remove was wrong, so it wouldn't actually be removed.  That bug
was introduced by commit 61145aa1a12401ac71bcc450a58c773dd6e2bfb9
("[KEY]: Clean up proc files creation a bit.")

Signed-off-by: David S. Miller <davem@davemloft.net>
net/key/af_key.c

index 1c853927810add38d862838c702de91bb687e4f0..8b5f486ac80f298fe6034a2a8b576c3c2ad9ea83 100644 (file)
@@ -3807,17 +3807,16 @@ static int pfkey_init_proc(void)
 {
        struct proc_dir_entry *e;
 
-       e = create_proc_entry("pfkey", 0, init_net.proc_net);
+       e = proc_net_fops_create(&init_net, "pfkey", 0, &pfkey_proc_ops);
        if (e == NULL)
                return -ENOMEM;
 
-       e->proc_fops = &pfkey_proc_ops;
        return 0;
 }
 
 static void pfkey_exit_proc(void)
 {
-       remove_proc_entry("net/pfkey", NULL);
+       proc_net_remove(&init_net, "pfkey");
 }
 #else
 static inline int pfkey_init_proc(void)