Skip to content

Commit

Permalink
net: Simplify af_key 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 946d1a9 commit 23c049c
Showing 1 changed file with 6 additions and 19 deletions.
25 changes: 6 additions & 19 deletions net/key/af_key.c
Original file line number Diff line number Diff line change
Expand Up @@ -3765,28 +3765,14 @@ static struct xfrm_mgr pfkeyv2_mgr =

static int __net_init pfkey_net_init(struct net *net)
{
struct netns_pfkey *net_pfkey;
struct netns_pfkey *net_pfkey = net_generic(net, pfkey_net_id);
int rv;

net_pfkey = kmalloc(sizeof(struct netns_pfkey), GFP_KERNEL);
if (!net_pfkey) {
rv = -ENOMEM;
goto out_kmalloc;
}
INIT_HLIST_HEAD(&net_pfkey->table);
atomic_set(&net_pfkey->socks_nr, 0);
rv = net_assign_generic(net, pfkey_net_id, net_pfkey);
if (rv < 0)
goto out_assign;

rv = pfkey_init_proc(net);
if (rv < 0)
goto out_proc;
return 0;

out_proc:
out_assign:
kfree(net_pfkey);
out_kmalloc:
return rv;
}

Expand All @@ -3796,17 +3782,18 @@ static void __net_exit pfkey_net_exit(struct net *net)

pfkey_exit_proc(net);
BUG_ON(!hlist_empty(&net_pfkey->table));
kfree(net_pfkey);
}

static struct pernet_operations pfkey_net_ops = {
.init = pfkey_net_init,
.exit = pfkey_net_exit,
.id = &pfkey_net_id,
.size = sizeof(struct netns_pfkey),
};

static void __exit ipsec_pfkey_exit(void)
{
unregister_pernet_gen_subsys(pfkey_net_id, &pfkey_net_ops);
unregister_pernet_subsys(&pfkey_net_ops);
xfrm_unregister_km(&pfkeyv2_mgr);
sock_unregister(PF_KEY);
proto_unregister(&key_proto);
Expand All @@ -3825,7 +3812,7 @@ static int __init ipsec_pfkey_init(void)
err = xfrm_register_km(&pfkeyv2_mgr);
if (err != 0)
goto out_sock_unregister;
err = register_pernet_gen_subsys(&pfkey_net_id, &pfkey_net_ops);
err = register_pernet_subsys(&pfkey_net_ops);
if (err != 0)
goto out_xfrm_unregister_km;
out:
Expand Down

0 comments on commit 23c049c

Please sign in to comment.