Skip to content

Commit

Permalink
net: Simplify conntrack_proto_gre 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 32b51f9 commit e8d0288
Showing 1 changed file with 6 additions and 14 deletions.
20 changes: 6 additions & 14 deletions net/netfilter/nf_conntrack_proto_gre.c
Original file line number Diff line number Diff line change
Expand Up @@ -300,32 +300,24 @@ static struct nf_conntrack_l4proto nf_conntrack_l4proto_gre4 __read_mostly = {

static int proto_gre_net_init(struct net *net)
{
struct netns_proto_gre *net_gre;
int rv;
struct netns_proto_gre *net_gre = net_generic(net, proto_gre_net_id);

net_gre = kmalloc(sizeof(struct netns_proto_gre), GFP_KERNEL);
if (!net_gre)
return -ENOMEM;
rwlock_init(&net_gre->keymap_lock);
INIT_LIST_HEAD(&net_gre->keymap_list);

rv = net_assign_generic(net, proto_gre_net_id, net_gre);
if (rv < 0)
kfree(net_gre);
return rv;
return 0;
}

static void proto_gre_net_exit(struct net *net)
{
struct netns_proto_gre *net_gre = net_generic(net, proto_gre_net_id);

nf_ct_gre_keymap_flush(net);
kfree(net_gre);
}

static struct pernet_operations proto_gre_net_ops = {
.init = proto_gre_net_init,
.exit = proto_gre_net_exit,
.id = &proto_gre_net_id,
.size = sizeof(struct netns_proto_gre),
};

static int __init nf_ct_proto_gre_init(void)
Expand All @@ -335,7 +327,7 @@ static int __init nf_ct_proto_gre_init(void)
rv = nf_conntrack_l4proto_register(&nf_conntrack_l4proto_gre4);
if (rv < 0)
return rv;
rv = register_pernet_gen_subsys(&proto_gre_net_id, &proto_gre_net_ops);
rv = register_pernet_subsys(&proto_gre_net_ops);
if (rv < 0)
nf_conntrack_l4proto_unregister(&nf_conntrack_l4proto_gre4);
return rv;
Expand All @@ -344,7 +336,7 @@ static int __init nf_ct_proto_gre_init(void)
static void __exit nf_ct_proto_gre_fini(void)
{
nf_conntrack_l4proto_unregister(&nf_conntrack_l4proto_gre4);
unregister_pernet_gen_subsys(proto_gre_net_id, &proto_gre_net_ops);
unregister_pernet_subsys(&proto_gre_net_ops);
}

module_init(nf_ct_proto_gre_init);
Expand Down

0 comments on commit e8d0288

Please sign in to comment.