diff options
author | Alexey Dobriyan <adobriyan@gmail.com> | 2009-05-04 14:11:38 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-05-04 14:11:38 -0400 |
commit | 4a84822c60afa2b0e2d3370041f69f9526a34757 (patch) | |
tree | e94f81b61c05d1358fdf95674a30fe8a9ef8dc3e /net/core | |
parent | 6e8cf5c069c6cb7b316e9b1715eac38873dd5cab (diff) |
netns 1/2: don't get/put old netns on CLONE_NEWNET
copy_net_ns() doesn't copy anything, it creates fresh netns, so
get/put of old netns isn't needed.
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Acked-by: Serge Hallyn <serue@us.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core')
-rw-r--r-- | net/core/net_namespace.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/net/core/net_namespace.c b/net/core/net_namespace.c index e3bebd36f053..4488010d5a52 100644 --- a/net/core/net_namespace.c +++ b/net/core/net_namespace.c | |||
@@ -120,10 +120,8 @@ struct net *copy_net_ns(unsigned long flags, struct net *old_net) | |||
120 | struct net *new_net = NULL; | 120 | struct net *new_net = NULL; |
121 | int err; | 121 | int err; |
122 | 122 | ||
123 | get_net(old_net); | ||
124 | |||
125 | if (!(flags & CLONE_NEWNET)) | 123 | if (!(flags & CLONE_NEWNET)) |
126 | return old_net; | 124 | return get_net(old_net); |
127 | 125 | ||
128 | err = -ENOMEM; | 126 | err = -ENOMEM; |
129 | new_net = net_alloc(); | 127 | new_net = net_alloc(); |
@@ -142,7 +140,6 @@ struct net *copy_net_ns(unsigned long flags, struct net *old_net) | |||
142 | if (err) | 140 | if (err) |
143 | goto out_free; | 141 | goto out_free; |
144 | out: | 142 | out: |
145 | put_net(old_net); | ||
146 | return new_net; | 143 | return new_net; |
147 | 144 | ||
148 | out_free: | 145 | out_free: |