]> git.baikalelectronics.ru Git - kernel.git/commit
proc-ns: use d_set_d_op() API to set dentry ops in proc_ns_instantiate().
authorPravin B Shelar <pshelar@nicira.com>
Fri, 23 Mar 2012 22:02:55 +0000 (15:02 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 23 Mar 2012 23:58:42 +0000 (16:58 -0700)
commit4bf08db21c86eb2d28dff266db5723530c6dd2d9
tree533eb56100209cd0d8ec2c1f3d354af1695226f9
parentc0adfa58ad6cf1b828b6430c8f3ff09fe5199916
proc-ns: use d_set_d_op() API to set dentry ops in proc_ns_instantiate().

The namespace cleanup path leaks a dentry which holds a reference count
on a network namespace.  Keeping that network namespace from being freed
when the last user goes away.  Leaving things like vlan devices in the
leaked network namespace.

If you use ip netns add for much real work this problem becomes apparent
pretty quickly.  It light testing the problem hides because frequently
you simply don't notice the leak.

Use d_set_d_op() so that DCACHE_OP_* flags are set correctly.

This issue exists back to 3.0.

Acked-by: "Eric W. Biederman" <ebiederm@xmission.com>
Reported-by: Justin Pettit <jpettit@nicira.com>
Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
Signed-off-by: Jesse Gross <jesse@nicira.com>
Cc: David Miller <davem@davemloft.net>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/proc/namespaces.c