From: Alexey Dobriyan Date: Mon, 4 May 2009 18:11:38 +0000 (-0700) Subject: netns 1/2: don't get/put old netns on CLONE_NEWNET X-Git-Tag: v2.6.31-rc1~14^2~563 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=4a84822c60afa2b0e2d3370041f69f9526a34757;p=linux-2.6-block.git 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 Acked-by: Serge Hallyn Signed-off-by: David S. Miller --- 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) struct net *new_net = NULL; int err; - get_net(old_net); - if (!(flags & CLONE_NEWNET)) - return old_net; + return get_net(old_net); err = -ENOMEM; new_net = net_alloc(); @@ -142,7 +140,6 @@ struct net *copy_net_ns(unsigned long flags, struct net *old_net) if (err) goto out_free; out: - put_net(old_net); return new_net; out_free: