diff options
author | Serge E. Hallyn <serue@us.ibm.com> | 2006-10-02 05:18:11 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-02 10:57:21 -0400 |
commit | e9ff3990f08e9a0c2839cc22808b01732ea5b3e4 (patch) | |
tree | c638a7b89f0c5e8adc410316d06ca1de8b8dabee /arch/sparc | |
parent | 0bdd7aab7f0ecd5d337910816aa058c18398628e (diff) |
[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>
Diffstat (limited to 'arch/sparc')
-rw-r--r-- | arch/sparc/kernel/sys_sparc.c | 4 | ||||
-rw-r--r-- | arch/sparc/kernel/sys_sunos.c | 15 |
2 files changed, 12 insertions, 7 deletions
diff --git a/arch/sparc/kernel/sys_sparc.c b/arch/sparc/kernel/sys_sparc.c index 896863fb208a..002ab4dbe5cb 100644 --- a/arch/sparc/kernel/sys_sparc.c +++ b/arch/sparc/kernel/sys_sparc.c | |||
@@ -475,13 +475,13 @@ asmlinkage int sys_getdomainname(char __user *name, int len) | |||
475 | 475 | ||
476 | down_read(&uts_sem); | 476 | down_read(&uts_sem); |
477 | 477 | ||
478 | nlen = strlen(system_utsname.domainname) + 1; | 478 | nlen = strlen(utsname()->domainname) + 1; |
479 | err = -EINVAL; | 479 | err = -EINVAL; |
480 | if (nlen > len) | 480 | if (nlen > len) |
481 | goto out; | 481 | goto out; |
482 | 482 | ||
483 | err = -EFAULT; | 483 | err = -EFAULT; |
484 | if (!copy_to_user(name, system_utsname.domainname, nlen)) | 484 | if (!copy_to_user(name, utsname()->domainname, nlen)) |
485 | err = 0; | 485 | err = 0; |
486 | 486 | ||
487 | out: | 487 | out: |
diff --git a/arch/sparc/kernel/sys_sunos.c b/arch/sparc/kernel/sys_sunos.c index aa0fb2efb615..9d2cd97d1c3a 100644 --- a/arch/sparc/kernel/sys_sunos.c +++ b/arch/sparc/kernel/sys_sunos.c | |||
@@ -483,13 +483,18 @@ asmlinkage int sunos_uname(struct sunos_utsname __user *name) | |||
483 | { | 483 | { |
484 | int ret; | 484 | int ret; |
485 | down_read(&uts_sem); | 485 | down_read(&uts_sem); |
486 | ret = copy_to_user(&name->sname[0], &system_utsname.sysname[0], sizeof(name->sname) - 1); | 486 | ret = copy_to_user(&name->sname[0], &utsname()->sysname[0], |
487 | sizeof(name->sname) - 1); | ||
487 | if (!ret) { | 488 | if (!ret) { |
488 | ret |= __copy_to_user(&name->nname[0], &system_utsname.nodename[0], sizeof(name->nname) - 1); | 489 | ret |= __copy_to_user(&name->nname[0], &utsname()->nodename[0], |
490 | sizeof(name->nname) - 1); | ||
489 | ret |= __put_user('\0', &name->nname[8]); | 491 | ret |= __put_user('\0', &name->nname[8]); |
490 | ret |= __copy_to_user(&name->rel[0], &system_utsname.release[0], sizeof(name->rel) - 1); | 492 | ret |= __copy_to_user(&name->rel[0], &utsname()->release[0], |
491 | ret |= __copy_to_user(&name->ver[0], &system_utsname.version[0], sizeof(name->ver) - 1); | 493 | sizeof(name->rel) - 1); |
492 | ret |= __copy_to_user(&name->mach[0], &system_utsname.machine[0], sizeof(name->mach) - 1); | 494 | ret |= __copy_to_user(&name->ver[0], &utsname()->version[0], |
495 | sizeof(name->ver) - 1); | ||
496 | ret |= __copy_to_user(&name->mach[0], &utsname()->machine[0], | ||
497 | sizeof(name->mach) - 1); | ||
493 | } | 498 | } |
494 | up_read(&uts_sem); | 499 | up_read(&uts_sem); |
495 | return ret ? -EFAULT : 0; | 500 | return ret ? -EFAULT : 0; |