Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e8d02885 authored by Eric W. Biederman's avatar Eric W. Biederman Committed by David S. Miller
Browse files

net: Simplify conntrack_proto_gre pernet operations.



Take advantage of the new pernet automatic storage management,
and stop using compatibility network namespace functions.

Signed-off-by: default avatarEric W. Biederman <ebiederm@xmission.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 32b51f92
Loading
Loading
Loading
Loading
+6 −14
Original line number Diff line number Diff line
@@ -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)
@@ -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;
@@ -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);