net: Automatically allocate per namespace data.
authorEric W. Biederman <ebiederm@xmission.com>
Sun, 29 Nov 2009 22:25:28 +0000 (22:25 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 2 Dec 2009 00:15:51 +0000 (16:15 -0800)
commitf875bae065334907796da12523f9df85c89f5712
tree6f14819d128e3fa7b4cc8c274c6eff5326622fc8
parent2b035b39970740722598f7a9d548835f9bdd730f
net: Automatically allocate per namespace data.

To get the full benefit of batched network namespace cleanup netowrk
device deletion needs to be performed by the generic code.  When
using register_pernet_gen_device and freeing the data in exit_net
it is impossible to delay allocation until after exit_net has called
as the device uninit methods are no longer safe.

To correct this, and to simplify working with per network namespace data
I have moved allocation and deletion of per network namespace data into
the network namespace core.  The core now frees the data only after
all of the network namespace exit routines have run.

Now it is only required to set the new fields .id and .size
in the pernet_operations structure if you want network namespace
data to be managed for you automatically.

This makes the current register_pernet_gen_device and
register_pernet_gen_subsys routines unnecessary.  For the moment
I have left them as compatibility wrappers in net_namespace.h
They will be removed once all of the users have been updated.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/net_namespace.h
net/core/net_namespace.c