proc: introduce proc_create_net{,_data}
[linux-block.git] / net / ipv6 / tcp_ipv6.c
index 6d664d83cd16a26cd96d65e2894468eb4ea38661..d2ce66b23430ab0033d737a68e74a21c13a5fa2f 100644 (file)
@@ -1909,30 +1909,28 @@ out:
        return 0;
 }
 
-static const struct file_operations tcp6_afinfo_seq_fops = {
-       .open    = tcp_seq_open,
-       .read    = seq_read,
-       .llseek  = seq_lseek,
-       .release = seq_release_net
+static const struct seq_operations tcp6_seq_ops = {
+       .show           = tcp6_seq_show,
+       .start          = tcp_seq_start,
+       .next           = tcp_seq_next,
+       .stop           = tcp_seq_stop,
 };
 
 static struct tcp_seq_afinfo tcp6_seq_afinfo = {
-       .name           = "tcp6",
        .family         = AF_INET6,
-       .seq_fops       = &tcp6_afinfo_seq_fops,
-       .seq_ops        = {
-               .show           = tcp6_seq_show,
-       },
 };
 
 int __net_init tcp6_proc_init(struct net *net)
 {
-       return tcp_proc_register(net, &tcp6_seq_afinfo);
+       if (!proc_create_net_data("tcp6", 0444, net->proc_net, &tcp6_seq_ops,
+                       sizeof(struct tcp_iter_state), &tcp6_seq_afinfo))
+               return -ENOMEM;
+       return 0;
 }
 
 void tcp6_proc_exit(struct net *net)
 {
-       tcp_proc_unregister(net, &tcp6_seq_afinfo);
+       remove_proc_entry("tcp6", net->proc_net);
 }
 #endif