[PATCH] namespaces: utsname: switch to using uts namespaces
Replace references to system_utsname to the per-process uts namespace where appropriate. This includes things like uname. Changes: Per Eric Biederman's comments, use the per-process uts namespace for ELF_PLATFORM, sunrpc, and parts of net/ipv4/ipconfig.c [jdike@addtoit.com: UML fix] [clg@fr.ibm.com: cleanup] [akpm@osdl.org: build fix] Signed-off-by: Serge E. Hallyn <serue@us.ibm.com> Cc: Kirill Korotaev <dev@openvz.org> Cc: "Eric W. Biederman" <ebiederm@xmission.com> Cc: Herbert Poetzl <herbert@13thfloor.at> Cc: Andrey Savochkin <saw@sw.ru> Signed-off-by: Cedric Le Goater <clg@fr.ibm.com> Cc: Jeff Dike <jdike@addtoit.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
committed by
Linus Torvalds
parent
0bdd7aab7f
commit
e9ff3990f0
14
kernel/sys.c
14
kernel/sys.c
@@ -1655,7 +1655,7 @@ asmlinkage long sys_newuname(struct new_utsname __user * name)
|
||||
int errno = 0;
|
||||
|
||||
down_read(&uts_sem);
|
||||
if (copy_to_user(name,&system_utsname,sizeof *name))
|
||||
if (copy_to_user(name, utsname(), sizeof *name))
|
||||
errno = -EFAULT;
|
||||
up_read(&uts_sem);
|
||||
return errno;
|
||||
@@ -1673,8 +1673,8 @@ asmlinkage long sys_sethostname(char __user *name, int len)
|
||||
down_write(&uts_sem);
|
||||
errno = -EFAULT;
|
||||
if (!copy_from_user(tmp, name, len)) {
|
||||
memcpy(system_utsname.nodename, tmp, len);
|
||||
system_utsname.nodename[len] = 0;
|
||||
memcpy(utsname()->nodename, tmp, len);
|
||||
utsname()->nodename[len] = 0;
|
||||
errno = 0;
|
||||
}
|
||||
up_write(&uts_sem);
|
||||
@@ -1690,11 +1690,11 @@ asmlinkage long sys_gethostname(char __user *name, int len)
|
||||
if (len < 0)
|
||||
return -EINVAL;
|
||||
down_read(&uts_sem);
|
||||
i = 1 + strlen(system_utsname.nodename);
|
||||
i = 1 + strlen(utsname()->nodename);
|
||||
if (i > len)
|
||||
i = len;
|
||||
errno = 0;
|
||||
if (copy_to_user(name, system_utsname.nodename, i))
|
||||
if (copy_to_user(name, utsname()->nodename, i))
|
||||
errno = -EFAULT;
|
||||
up_read(&uts_sem);
|
||||
return errno;
|
||||
@@ -1719,8 +1719,8 @@ asmlinkage long sys_setdomainname(char __user *name, int len)
|
||||
down_write(&uts_sem);
|
||||
errno = -EFAULT;
|
||||
if (!copy_from_user(tmp, name, len)) {
|
||||
memcpy(system_utsname.domainname, tmp, len);
|
||||
system_utsname.domainname[len] = 0;
|
||||
memcpy(utsname()->domainname, tmp, len);
|
||||
utsname()->domainname[len] = 0;
|
||||
errno = 0;
|
||||
}
|
||||
up_write(&uts_sem);
|
||||
|
Reference in New Issue
Block a user