diff options
| author | Alexey Dobriyan <adobriyan@gmail.com> | 2009-06-17 16:27:56 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-06-18 13:03:56 -0700 | 
| commit | 90af90d7d3a7411db64860c9d6e5798ff87cad08 (patch) | |
| tree | 84f9c68edb231d6b64d2b24add4d7bedcb5a4aa8 /kernel/nsproxy.c | |
| parent | 612ce478fac2729ad564ec3f5d3c551674b8e9c2 (diff) | |
| download | olio-linux-3.10-90af90d7d3a7411db64860c9d6e5798ff87cad08.tar.xz olio-linux-3.10-90af90d7d3a7411db64860c9d6e5798ff87cad08.zip  | |
nsproxy: extract create_nsproxy()
clone_nsproxy() does useless copying of old nsproxy -- every pointer will
be rewritten to new ns or to old ns.  Remove copying, rename
clone_nsproxy(), create_nsproxy() will be used by C/R code to create fresh
nsproxy on restart.
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Acked-by: Serge Hallyn <serue@us.ibm.com>
Cc: Pavel Emelyanov <xemul@openvz.org>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel/nsproxy.c')
| -rw-r--r-- | kernel/nsproxy.c | 19 | 
1 files changed, 7 insertions, 12 deletions
diff --git a/kernel/nsproxy.c b/kernel/nsproxy.c index 63598dca2d0..09b4ff9711b 100644 --- a/kernel/nsproxy.c +++ b/kernel/nsproxy.c @@ -26,19 +26,14 @@ static struct kmem_cache *nsproxy_cachep;  struct nsproxy init_nsproxy = INIT_NSPROXY(init_nsproxy); -/* - * creates a copy of "orig" with refcount 1. - */ -static inline struct nsproxy *clone_nsproxy(struct nsproxy *orig) +static inline struct nsproxy *create_nsproxy(void)  { -	struct nsproxy *ns; +	struct nsproxy *nsproxy; -	ns = kmem_cache_alloc(nsproxy_cachep, GFP_KERNEL); -	if (ns) { -		memcpy(ns, orig, sizeof(struct nsproxy)); -		atomic_set(&ns->count, 1); -	} -	return ns; +	nsproxy = kmem_cache_alloc(nsproxy_cachep, GFP_KERNEL); +	if (nsproxy) +		atomic_set(&nsproxy->count, 1); +	return nsproxy;  }  /* @@ -52,7 +47,7 @@ static struct nsproxy *create_new_namespaces(unsigned long flags,  	struct nsproxy *new_nsp;  	int err; -	new_nsp = clone_nsproxy(tsk->nsproxy); +	new_nsp = create_nsproxy();  	if (!new_nsp)  		return ERR_PTR(-ENOMEM);  |