Skip to content

Commit

Permalink
net: Simplify conntrack_proto_dccp pernet operations.
Browse files Browse the repository at this point in the history
Take advantage of the new pernet automatic storage management,
and stop using compatibility network namespace functions.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Eric W. Biederman authored and David S. Miller committed Dec 2, 2009
1 parent 23c049c commit 32b51f9
Showing 1 changed file with 8 additions and 23 deletions.
31 changes: 8 additions & 23 deletions net/netfilter/nf_conntrack_proto_dccp.c
Original file line number Diff line number Diff line change
Expand Up @@ -810,12 +810,7 @@ static struct nf_conntrack_l4proto dccp_proto6 __read_mostly = {

static __net_init int dccp_net_init(struct net *net)
{
struct dccp_net *dn;
int err;

dn = kmalloc(sizeof(*dn), GFP_KERNEL);
if (!dn)
return -ENOMEM;
struct dccp_net *dn = dccp_pernet(net);

/* default values */
dn->dccp_loose = 1;
Expand All @@ -827,16 +822,11 @@ static __net_init int dccp_net_init(struct net *net)
dn->dccp_timeout[CT_DCCP_CLOSING] = 64 * HZ;
dn->dccp_timeout[CT_DCCP_TIMEWAIT] = 2 * DCCP_MSL;

err = net_assign_generic(net, dccp_net_id, dn);
if (err)
goto out;

#ifdef CONFIG_SYSCTL
err = -ENOMEM;
dn->sysctl_table = kmemdup(dccp_sysctl_table,
sizeof(dccp_sysctl_table), GFP_KERNEL);
if (!dn->sysctl_table)
goto out;
return -ENOMEM;

dn->sysctl_table[0].data = &dn->dccp_timeout[CT_DCCP_REQUEST];
dn->sysctl_table[1].data = &dn->dccp_timeout[CT_DCCP_RESPOND];
Expand All @@ -851,15 +841,11 @@ static __net_init int dccp_net_init(struct net *net)
nf_net_netfilter_sysctl_path, dn->sysctl_table);
if (!dn->sysctl_header) {
kfree(dn->sysctl_table);
goto out;
return -ENOMEM;
}
#endif

return 0;

out:
kfree(dn);
return err;
}

static __net_exit void dccp_net_exit(struct net *net)
Expand All @@ -869,21 +855,20 @@ static __net_exit void dccp_net_exit(struct net *net)
unregister_net_sysctl_table(dn->sysctl_header);
kfree(dn->sysctl_table);
#endif
kfree(dn);

net_assign_generic(net, dccp_net_id, NULL);
}

static struct pernet_operations dccp_net_ops = {
.init = dccp_net_init,
.exit = dccp_net_exit,
.id = &dccp_net_id,
.size = sizeof(struct dccp_net),
};

static int __init nf_conntrack_proto_dccp_init(void)
{
int err;

err = register_pernet_gen_subsys(&dccp_net_id, &dccp_net_ops);
err = register_pernet_subsys(&dccp_net_ops);
if (err < 0)
goto err1;

Expand All @@ -899,14 +884,14 @@ static int __init nf_conntrack_proto_dccp_init(void)
err3:
nf_conntrack_l4proto_unregister(&dccp_proto4);
err2:
unregister_pernet_gen_subsys(dccp_net_id, &dccp_net_ops);
unregister_pernet_subsys(&dccp_net_ops);
err1:
return err;
}

static void __exit nf_conntrack_proto_dccp_fini(void)
{
unregister_pernet_gen_subsys(dccp_net_id, &dccp_net_ops);
unregister_pernet_subsys(&dccp_net_ops);
nf_conntrack_l4proto_unregister(&dccp_proto6);
nf_conntrack_l4proto_unregister(&dccp_proto4);
}
Expand Down

0 comments on commit 32b51f9

Please sign in to comment.