X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=net%2Fipv4%2Fudplite.c;h=72ce26b6c4d337b10533b95db0577a9c184cede3;hb=9a13150109fb418c50fa400c012f90d0ce6f67c3;hp=653a6fc190230ffb6a2b198ed8007b284a0a816e;hpb=ff2bac6a63e3694e7a97152b7e934fe244e2a858;p=linux-2.6 diff --git a/net/ipv4/udplite.c b/net/ipv4/udplite.c index 653a6fc190..72ce26b6c4 100644 --- a/net/ipv4/udplite.c +++ b/net/ipv4/udplite.c @@ -31,10 +31,9 @@ static struct net_protocol udplite_protocol = { .handler = udplite_rcv, .err_handler = udplite_err, .no_policy = 1, + .netns_ok = 1, }; -DEFINE_PROTO_INUSE(udplite) - struct proto udplite_prot = { .name = "UDP-Lite", .owner = THIS_MODULE, @@ -59,7 +58,6 @@ struct proto udplite_prot = { .compat_setsockopt = compat_udp_setsockopt, .compat_getsockopt = compat_udp_getsockopt, #endif - REF_PROTO_INUSE(udplite) }; static struct inet_protosw udplite4_protosw = { @@ -73,19 +71,36 @@ static struct inet_protosw udplite4_protosw = { }; #ifdef CONFIG_PROC_FS -static struct file_operations udplite4_seq_fops; static struct udp_seq_afinfo udplite4_seq_afinfo = { - .owner = THIS_MODULE, .name = "udplite", .family = AF_INET, .hashtable = udplite_hash, - .seq_show = udp4_seq_show, - .seq_fops = &udplite4_seq_fops, + .seq_fops = { + .owner = THIS_MODULE, + }, + .seq_ops = { + .show = udp4_seq_show, + }, +}; + +static int udplite4_proc_init_net(struct net *net) +{ + return udp_proc_register(net, &udplite4_seq_afinfo); +} + +static void udplite4_proc_exit_net(struct net *net) +{ + udp_proc_unregister(net, &udplite4_seq_afinfo); +} + +static struct pernet_operations udplite4_net_ops = { + .init = udplite4_proc_init_net, + .exit = udplite4_proc_exit_net, }; static __init int udplite4_proc_init(void) { - return udp_proc_register(&init_net, &udplite4_seq_afinfo); + return register_pernet_subsys(&udplite4_net_ops); } #else static inline int udplite4_proc_init(void)