]> err.no Git - linux-2.6/blobdiff - net/ipv6/udplite.c
ipv6: Fix duplicate initialization of rawv6_prot.destroy
[linux-2.6] / net / ipv6 / udplite.c
index 93e52e0d57f23a87bbb97c2e8db53c3e5cca0ad6..491efd00a86671af20bf607b85f63869b11881ac 100644 (file)
@@ -35,8 +35,6 @@ static struct inet6_protocol udplitev6_protocol = {
        .flags          =       INET6_PROTO_NOPOLICY|INET6_PROTO_FINAL,
 };
 
-DEFINE_PROTO_INUSE(udplitev6)
-
 struct proto udplitev6_prot = {
        .name              = "UDPLITEv6",
        .owner             = THIS_MODULE,
@@ -60,7 +58,6 @@ struct proto udplitev6_prot = {
        .compat_setsockopt = compat_udpv6_setsockopt,
        .compat_getsockopt = compat_udpv6_getsockopt,
 #endif
-       REF_PROTO_INUSE(udplitev6)
 };
 
 static struct inet_protosw udplite6_protosw = {
@@ -99,23 +96,40 @@ void udplitev6_exit(void)
 }
 
 #ifdef CONFIG_PROC_FS
-static struct file_operations udplite6_seq_fops;
 static struct udp_seq_afinfo udplite6_seq_afinfo = {
-       .owner          = THIS_MODULE,
        .name           = "udplite6",
        .family         = AF_INET6,
        .hashtable      = udplite_hash,
-       .seq_show       = udp6_seq_show,
-       .seq_fops       = &udplite6_seq_fops,
+       .seq_fops       = {
+               .owner  =       THIS_MODULE,
+       },
+       .seq_ops        = {
+               .show           = udp6_seq_show,
+       },
+};
+
+static int udplite6_proc_init_net(struct net *net)
+{
+       return udp_proc_register(net, &udplite6_seq_afinfo);
+}
+
+static void udplite6_proc_exit_net(struct net *net)
+{
+       udp_proc_unregister(net, &udplite6_seq_afinfo);
+}
+
+static struct pernet_operations udplite6_net_ops = {
+       .init = udplite6_proc_init_net,
+       .exit = udplite6_proc_exit_net,
 };
 
 int __init udplite6_proc_init(void)
 {
-       return udp_proc_register(&init_net, &udplite6_seq_afinfo);
+       return register_pernet_subsys(&udplite6_net_ops);
 }
 
 void udplite6_proc_exit(void)
 {
-       udp_proc_unregister(&init_net, &udplite6_seq_afinfo);
+       unregister_pernet_subsys(&udplite6_net_ops);
 }
 #endif