Skip to content

Commit

Permalink
net: Simplify vlan 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 <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
  • Loading branch information
ebiederm authored and davem330 committed Dec 2, 2009
1 parent 1544974 commit 946d1a9
Showing 1 changed file with 7 additions and 26 deletions.
33 changes: 7 additions & 26 deletions net/8021q/vlan.c
Original file line number Diff line number Diff line change
Expand Up @@ -686,47 +686,28 @@ static int vlan_ioctl_handler(struct net *net, void __user *arg)

static int vlan_init_net(struct net *net)
{
struct vlan_net *vn = net_generic(net, vlan_net_id);
int err;
struct vlan_net *vn;

err = -ENOMEM;
vn = kzalloc(sizeof(struct vlan_net), GFP_KERNEL);
if (vn == NULL)
goto err_alloc;

err = net_assign_generic(net, vlan_net_id, vn);
if (err < 0)
goto err_assign;

vn->name_type = VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD;

err = vlan_proc_init(net);
if (err < 0)
goto err_proc;

return 0;

err_proc:
/* nothing */
err_assign:
kfree(vn);
err_alloc:
return err;
}

static void vlan_exit_net(struct net *net)
{
struct vlan_net *vn;

vn = net_generic(net, vlan_net_id);
rtnl_kill_links(net, &vlan_link_ops);

vlan_proc_cleanup(net);
kfree(vn);
}

static struct pernet_operations vlan_net_ops = {
.init = vlan_init_net,
.exit = vlan_exit_net,
.id = &vlan_net_id,
.size = sizeof(struct vlan_net),
};

static int __init vlan_proto_init(void)
Expand All @@ -736,7 +717,7 @@ static int __init vlan_proto_init(void)
pr_info("%s v%s %s\n", vlan_fullname, vlan_version, vlan_copyright);
pr_info("All bugs added by %s\n", vlan_buggyright);

err = register_pernet_gen_device(&vlan_net_id, &vlan_net_ops);
err = register_pernet_device(&vlan_net_ops);
if (err < 0)
goto err0;

Expand All @@ -761,7 +742,7 @@ static int __init vlan_proto_init(void)
err3:
unregister_netdevice_notifier(&vlan_notifier_block);
err2:
unregister_pernet_gen_device(vlan_net_id, &vlan_net_ops);
unregister_pernet_device(&vlan_net_ops);
err0:
return err;
}
Expand All @@ -781,7 +762,7 @@ static void __exit vlan_cleanup_module(void)
for (i = 0; i < VLAN_GRP_HASH_SIZE; i++)
BUG_ON(!hlist_empty(&vlan_group_hash[i]));

unregister_pernet_gen_device(vlan_net_id, &vlan_net_ops);
unregister_pernet_device(&vlan_net_ops);
rcu_barrier(); /* Wait for completion of call_rcu()'s */

vlan_gvrp_uninit();
Expand Down

0 comments on commit 946d1a9

Please sign in to comment.