diff options
author | Eric W. Biederman <ebiederm@xmission.com> | 2009-11-29 16:46:04 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-12-02 01:15:53 +0100 |
commit | 15449745e5d181ae214ceaf0880350bb4e63512a (patch) | |
tree | ba5c67dda7bd17b91e7cef5d8905cf9eb793c6f4 /drivers/net/bonding | |
parent | net: Simplfy default_device_exit and improve batching. (diff) | |
download | linux-15449745e5d181ae214ceaf0880350bb4e63512a.tar.xz linux-15449745e5d181ae214ceaf0880350bb4e63512a.zip |
net: Simplify the bond drivers pernet operations.
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>
Diffstat (limited to 'drivers/net/bonding')
-rw-r--r-- | drivers/net/bonding/bond_main.c | 32 |
1 files changed, 9 insertions, 23 deletions
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c index 726bd755338f..ac3fe20abf8f 100644 --- a/drivers/net/bonding/bond_main.c +++ b/drivers/net/bonding/bond_main.c @@ -5103,42 +5103,28 @@ out_netdev: static int bond_net_init(struct net *net) { - struct bond_net *bn; - int err; - - err = -ENOMEM; - bn = kzalloc(sizeof(struct bond_net), GFP_KERNEL); - if (bn == NULL) - goto out; + struct bond_net *bn = net_generic(net, bond_net_id); bn->net = net; INIT_LIST_HEAD(&bn->dev_list); - err = net_assign_generic(net, bond_net_id, bn); - if (err) - goto out_free; - bond_create_proc_dir(bn); -out: - return err; -out_free: - kfree(bn); - goto out; + + return 0; } static void bond_net_exit(struct net *net) { - struct bond_net *bn; - - bn = net_generic(net, bond_net_id); + struct bond_net *bn = net_generic(net, bond_net_id); bond_destroy_proc_dir(bn); - kfree(bn); } static struct pernet_operations bond_net_ops = { .init = bond_net_init, .exit = bond_net_exit, + .id = &bond_net_id, + .size = sizeof(struct bond_net), }; static int __init bonding_init(void) @@ -5152,7 +5138,7 @@ static int __init bonding_init(void) if (res) goto out; - res = register_pernet_gen_subsys(&bond_net_id, &bond_net_ops); + res = register_pernet_subsys(&bond_net_ops); if (res) goto out; @@ -5178,7 +5164,7 @@ out: err: rtnl_link_unregister(&bond_link_ops); err_link: - unregister_pernet_gen_subsys(bond_net_id, &bond_net_ops); + unregister_pernet_subsys(&bond_net_ops); goto out; } @@ -5192,7 +5178,7 @@ static void __exit bonding_exit(void) bond_destroy_sysfs(); rtnl_link_unregister(&bond_link_ops); - unregister_pernet_gen_subsys(bond_net_id, &bond_net_ops); + unregister_pernet_subsys(&bond_net_ops); } module_init(bonding_init); |