[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:
parent
0bdd7aab7f
commit
e9ff3990f0
@ -402,15 +402,15 @@ osf_utsname(char __user *name)
|
|||||||
|
|
||||||
down_read(&uts_sem);
|
down_read(&uts_sem);
|
||||||
error = -EFAULT;
|
error = -EFAULT;
|
||||||
if (copy_to_user(name + 0, system_utsname.sysname, 32))
|
if (copy_to_user(name + 0, utsname()->sysname, 32))
|
||||||
goto out;
|
goto out;
|
||||||
if (copy_to_user(name + 32, system_utsname.nodename, 32))
|
if (copy_to_user(name + 32, utsname()->nodename, 32))
|
||||||
goto out;
|
goto out;
|
||||||
if (copy_to_user(name + 64, system_utsname.release, 32))
|
if (copy_to_user(name + 64, utsname()->release, 32))
|
||||||
goto out;
|
goto out;
|
||||||
if (copy_to_user(name + 96, system_utsname.version, 32))
|
if (copy_to_user(name + 96, utsname()->version, 32))
|
||||||
goto out;
|
goto out;
|
||||||
if (copy_to_user(name + 128, system_utsname.machine, 32))
|
if (copy_to_user(name + 128, utsname()->machine, 32))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
error = 0;
|
error = 0;
|
||||||
@ -449,8 +449,8 @@ osf_getdomainname(char __user *name, int namelen)
|
|||||||
|
|
||||||
down_read(&uts_sem);
|
down_read(&uts_sem);
|
||||||
for (i = 0; i < len; ++i) {
|
for (i = 0; i < len; ++i) {
|
||||||
__put_user(system_utsname.domainname[i], name + i);
|
__put_user(utsname()->domainname[i], name + i);
|
||||||
if (system_utsname.domainname[i] == '\0')
|
if (utsname()->domainname[i] == '\0')
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
up_read(&uts_sem);
|
up_read(&uts_sem);
|
||||||
@ -607,12 +607,12 @@ osf_sigstack(struct sigstack __user *uss, struct sigstack __user *uoss)
|
|||||||
asmlinkage long
|
asmlinkage long
|
||||||
osf_sysinfo(int command, char __user *buf, long count)
|
osf_sysinfo(int command, char __user *buf, long count)
|
||||||
{
|
{
|
||||||
static char * sysinfo_table[] = {
|
char *sysinfo_table[] = {
|
||||||
system_utsname.sysname,
|
utsname()->sysname,
|
||||||
system_utsname.nodename,
|
utsname()->nodename,
|
||||||
system_utsname.release,
|
utsname()->release,
|
||||||
system_utsname.version,
|
utsname()->version,
|
||||||
system_utsname.machine,
|
utsname()->machine,
|
||||||
"alpha", /* instruction set architecture */
|
"alpha", /* instruction set architecture */
|
||||||
"dummy", /* hardware serial number */
|
"dummy", /* hardware serial number */
|
||||||
"dummy", /* hardware manufacturer */
|
"dummy", /* hardware manufacturer */
|
||||||
|
@ -210,7 +210,7 @@ asmlinkage int sys_uname(struct old_utsname __user * name)
|
|||||||
if (!name)
|
if (!name)
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
down_read(&uts_sem);
|
down_read(&uts_sem);
|
||||||
err=copy_to_user(name, &system_utsname, sizeof (*name));
|
err = copy_to_user(name, utsname(), sizeof (*name));
|
||||||
up_read(&uts_sem);
|
up_read(&uts_sem);
|
||||||
return err?-EFAULT:0;
|
return err?-EFAULT:0;
|
||||||
}
|
}
|
||||||
@ -226,16 +226,21 @@ asmlinkage int sys_olduname(struct oldold_utsname __user * name)
|
|||||||
|
|
||||||
down_read(&uts_sem);
|
down_read(&uts_sem);
|
||||||
|
|
||||||
error = __copy_to_user(&name->sysname,&system_utsname.sysname,__OLD_UTS_LEN);
|
error = __copy_to_user(&name->sysname, &utsname()->sysname,
|
||||||
error |= __put_user(0,name->sysname+__OLD_UTS_LEN);
|
__OLD_UTS_LEN);
|
||||||
error |= __copy_to_user(&name->nodename,&system_utsname.nodename,__OLD_UTS_LEN);
|
error |= __put_user(0, name->sysname + __OLD_UTS_LEN);
|
||||||
error |= __put_user(0,name->nodename+__OLD_UTS_LEN);
|
error |= __copy_to_user(&name->nodename, &utsname()->nodename,
|
||||||
error |= __copy_to_user(&name->release,&system_utsname.release,__OLD_UTS_LEN);
|
__OLD_UTS_LEN);
|
||||||
error |= __put_user(0,name->release+__OLD_UTS_LEN);
|
error |= __put_user(0, name->nodename + __OLD_UTS_LEN);
|
||||||
error |= __copy_to_user(&name->version,&system_utsname.version,__OLD_UTS_LEN);
|
error |= __copy_to_user(&name->release, &utsname()->release,
|
||||||
error |= __put_user(0,name->version+__OLD_UTS_LEN);
|
__OLD_UTS_LEN);
|
||||||
error |= __copy_to_user(&name->machine,&system_utsname.machine,__OLD_UTS_LEN);
|
error |= __put_user(0, name->release + __OLD_UTS_LEN);
|
||||||
error |= __put_user(0,name->machine+__OLD_UTS_LEN);
|
error |= __copy_to_user(&name->version, &utsname()->version,
|
||||||
|
__OLD_UTS_LEN);
|
||||||
|
error |= __put_user(0, name->version + __OLD_UTS_LEN);
|
||||||
|
error |= __copy_to_user(&name->machine, &utsname()->machine,
|
||||||
|
__OLD_UTS_LEN);
|
||||||
|
error |= __put_user(0, name->machine + __OLD_UTS_LEN);
|
||||||
|
|
||||||
up_read(&uts_sem);
|
up_read(&uts_sem);
|
||||||
|
|
||||||
|
@ -423,7 +423,7 @@ static int sn_topology_show(struct seq_file *s, void *d)
|
|||||||
"coherency_domain %d, "
|
"coherency_domain %d, "
|
||||||
"region_size %d\n",
|
"region_size %d\n",
|
||||||
|
|
||||||
partid, system_utsname.nodename,
|
partid, utsname()->nodename,
|
||||||
shubtype ? "shub2" : "shub1",
|
shubtype ? "shub2" : "shub1",
|
||||||
(u64)nasid_mask << nasid_shift, nasid_msb, nasid_shift,
|
(u64)nasid_mask << nasid_shift, nasid_msb, nasid_shift,
|
||||||
system_size, sharing_size, coher, region_size);
|
system_size, sharing_size, coher, region_size);
|
||||||
|
@ -205,7 +205,7 @@ asmlinkage int sys_uname(struct old_utsname * name)
|
|||||||
if (!name)
|
if (!name)
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
down_read(&uts_sem);
|
down_read(&uts_sem);
|
||||||
err=copy_to_user(name, &system_utsname, sizeof (*name));
|
err = copy_to_user(name, utsname(), sizeof (*name));
|
||||||
up_read(&uts_sem);
|
up_read(&uts_sem);
|
||||||
return err?-EFAULT:0;
|
return err?-EFAULT:0;
|
||||||
}
|
}
|
||||||
|
@ -1039,7 +1039,7 @@ asmlinkage long sys32_newuname(struct new_utsname __user * name)
|
|||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
down_read(&uts_sem);
|
down_read(&uts_sem);
|
||||||
if (copy_to_user(name,&system_utsname,sizeof *name))
|
if (copy_to_user(name, utsname(), sizeof *name))
|
||||||
ret = -EFAULT;
|
ret = -EFAULT;
|
||||||
up_read(&uts_sem);
|
up_read(&uts_sem);
|
||||||
|
|
||||||
|
@ -231,7 +231,7 @@ out:
|
|||||||
*/
|
*/
|
||||||
asmlinkage int sys_uname(struct old_utsname __user * name)
|
asmlinkage int sys_uname(struct old_utsname __user * name)
|
||||||
{
|
{
|
||||||
if (name && !copy_to_user(name, &system_utsname, sizeof (*name)))
|
if (name && !copy_to_user(name, utsname(), sizeof (*name)))
|
||||||
return 0;
|
return 0;
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
}
|
}
|
||||||
@ -248,16 +248,21 @@ asmlinkage int sys_olduname(struct oldold_utsname __user * name)
|
|||||||
if (!access_ok(VERIFY_WRITE,name,sizeof(struct oldold_utsname)))
|
if (!access_ok(VERIFY_WRITE,name,sizeof(struct oldold_utsname)))
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
|
|
||||||
error = __copy_to_user(&name->sysname,&system_utsname.sysname,__OLD_UTS_LEN);
|
error = __copy_to_user(&name->sysname, &utsname()->sysname,
|
||||||
error -= __put_user(0,name->sysname+__OLD_UTS_LEN);
|
__OLD_UTS_LEN);
|
||||||
error -= __copy_to_user(&name->nodename,&system_utsname.nodename,__OLD_UTS_LEN);
|
error -= __put_user(0, name->sysname + __OLD_UTS_LEN);
|
||||||
error -= __put_user(0,name->nodename+__OLD_UTS_LEN);
|
error -= __copy_to_user(&name->nodename, &utsname()->nodename,
|
||||||
error -= __copy_to_user(&name->release,&system_utsname.release,__OLD_UTS_LEN);
|
__OLD_UTS_LEN);
|
||||||
error -= __put_user(0,name->release+__OLD_UTS_LEN);
|
error -= __put_user(0, name->nodename + __OLD_UTS_LEN);
|
||||||
error -= __copy_to_user(&name->version,&system_utsname.version,__OLD_UTS_LEN);
|
error -= __copy_to_user(&name->release, &utsname()->release,
|
||||||
error -= __put_user(0,name->version+__OLD_UTS_LEN);
|
__OLD_UTS_LEN);
|
||||||
error -= __copy_to_user(&name->machine,&system_utsname.machine,__OLD_UTS_LEN);
|
error -= __put_user(0, name->release + __OLD_UTS_LEN);
|
||||||
error = __put_user(0,name->machine+__OLD_UTS_LEN);
|
error -= __copy_to_user(&name->version, &utsname()->version,
|
||||||
|
__OLD_UTS_LEN);
|
||||||
|
error -= __put_user(0, name->version + __OLD_UTS_LEN);
|
||||||
|
error -= __copy_to_user(&name->machine, &utsname()->machine,
|
||||||
|
__OLD_UTS_LEN);
|
||||||
|
error = __put_user(0, name->machine + __OLD_UTS_LEN);
|
||||||
error = error ? -EFAULT : 0;
|
error = error ? -EFAULT : 0;
|
||||||
|
|
||||||
return error;
|
return error;
|
||||||
|
@ -884,7 +884,7 @@ asmlinkage int irix_getdomainname(char __user *name, int len)
|
|||||||
down_read(&uts_sem);
|
down_read(&uts_sem);
|
||||||
if (len > __NEW_UTS_LEN)
|
if (len > __NEW_UTS_LEN)
|
||||||
len = __NEW_UTS_LEN;
|
len = __NEW_UTS_LEN;
|
||||||
err = copy_to_user(name, system_utsname.domainname, len) ? -EFAULT : 0;
|
err = copy_to_user(name, utsname()->domainname, len) ? -EFAULT : 0;
|
||||||
up_read(&uts_sem);
|
up_read(&uts_sem);
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
@ -1127,11 +1127,11 @@ struct iuname {
|
|||||||
asmlinkage int irix_uname(struct iuname __user *buf)
|
asmlinkage int irix_uname(struct iuname __user *buf)
|
||||||
{
|
{
|
||||||
down_read(&uts_sem);
|
down_read(&uts_sem);
|
||||||
if (copy_from_user(system_utsname.sysname, buf->sysname, 65)
|
if (copy_from_user(utsname()->sysname, buf->sysname, 65)
|
||||||
|| copy_from_user(system_utsname.nodename, buf->nodename, 65)
|
|| copy_from_user(utsname()->nodename, buf->nodename, 65)
|
||||||
|| copy_from_user(system_utsname.release, buf->release, 65)
|
|| copy_from_user(utsname()->release, buf->release, 65)
|
||||||
|| copy_from_user(system_utsname.version, buf->version, 65)
|
|| copy_from_user(utsname()->version, buf->version, 65)
|
||||||
|| copy_from_user(system_utsname.machine, buf->machine, 65)) {
|
|| copy_from_user(utsname()->machine, buf->machine, 65)) {
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
}
|
}
|
||||||
up_read(&uts_sem);
|
up_read(&uts_sem);
|
||||||
|
@ -266,16 +266,21 @@ static int hpux_uname(struct hpux_utsname *name)
|
|||||||
|
|
||||||
down_read(&uts_sem);
|
down_read(&uts_sem);
|
||||||
|
|
||||||
error = __copy_to_user(&name->sysname,&system_utsname.sysname,HPUX_UTSLEN-1);
|
error = __copy_to_user(&name->sysname, &utsname()->sysname,
|
||||||
error |= __put_user(0,name->sysname+HPUX_UTSLEN-1);
|
HPUX_UTSLEN - 1);
|
||||||
error |= __copy_to_user(&name->nodename,&system_utsname.nodename,HPUX_UTSLEN-1);
|
error |= __put_user(0, name->sysname + HPUX_UTSLEN - 1);
|
||||||
error |= __put_user(0,name->nodename+HPUX_UTSLEN-1);
|
error |= __copy_to_user(&name->nodename, &utsname()->nodename,
|
||||||
error |= __copy_to_user(&name->release,&system_utsname.release,HPUX_UTSLEN-1);
|
HPUX_UTSLEN - 1);
|
||||||
error |= __put_user(0,name->release+HPUX_UTSLEN-1);
|
error |= __put_user(0, name->nodename + HPUX_UTSLEN - 1);
|
||||||
error |= __copy_to_user(&name->version,&system_utsname.version,HPUX_UTSLEN-1);
|
error |= __copy_to_user(&name->release, &utsname()->release,
|
||||||
error |= __put_user(0,name->version+HPUX_UTSLEN-1);
|
HPUX_UTSLEN - 1);
|
||||||
error |= __copy_to_user(&name->machine,&system_utsname.machine,HPUX_UTSLEN-1);
|
error |= __put_user(0, name->release + HPUX_UTSLEN - 1);
|
||||||
error |= __put_user(0,name->machine+HPUX_UTSLEN-1);
|
error |= __copy_to_user(&name->version, &utsname()->version,
|
||||||
|
HPUX_UTSLEN - 1);
|
||||||
|
error |= __put_user(0, name->version + HPUX_UTSLEN - 1);
|
||||||
|
error |= __copy_to_user(&name->machine, &utsname()->machine,
|
||||||
|
HPUX_UTSLEN - 1);
|
||||||
|
error |= __put_user(0, name->machine + HPUX_UTSLEN - 1);
|
||||||
|
|
||||||
up_read(&uts_sem);
|
up_read(&uts_sem);
|
||||||
|
|
||||||
@ -373,8 +378,8 @@ int hpux_utssys(char *ubuf, int n, int type)
|
|||||||
/* TODO: print a warning about using this? */
|
/* TODO: print a warning about using this? */
|
||||||
down_write(&uts_sem);
|
down_write(&uts_sem);
|
||||||
error = -EFAULT;
|
error = -EFAULT;
|
||||||
if (!copy_from_user(system_utsname.sysname, ubuf, len)) {
|
if (!copy_from_user(utsname()->sysname, ubuf, len)) {
|
||||||
system_utsname.sysname[len] = 0;
|
utsname()->sysname[len] = 0;
|
||||||
error = 0;
|
error = 0;
|
||||||
}
|
}
|
||||||
up_write(&uts_sem);
|
up_write(&uts_sem);
|
||||||
@ -400,8 +405,8 @@ int hpux_utssys(char *ubuf, int n, int type)
|
|||||||
/* TODO: print a warning about this? */
|
/* TODO: print a warning about this? */
|
||||||
down_write(&uts_sem);
|
down_write(&uts_sem);
|
||||||
error = -EFAULT;
|
error = -EFAULT;
|
||||||
if (!copy_from_user(system_utsname.release, ubuf, len)) {
|
if (!copy_from_user(utsname()->release, ubuf, len)) {
|
||||||
system_utsname.release[len] = 0;
|
utsname()->release[len] = 0;
|
||||||
error = 0;
|
error = 0;
|
||||||
}
|
}
|
||||||
up_write(&uts_sem);
|
up_write(&uts_sem);
|
||||||
@ -422,13 +427,13 @@ int hpux_getdomainname(char *name, int len)
|
|||||||
|
|
||||||
down_read(&uts_sem);
|
down_read(&uts_sem);
|
||||||
|
|
||||||
nlen = strlen(system_utsname.domainname) + 1;
|
nlen = strlen(utsname()->domainname) + 1;
|
||||||
|
|
||||||
if (nlen < len)
|
if (nlen < len)
|
||||||
len = nlen;
|
len = nlen;
|
||||||
if(len > __NEW_UTS_LEN)
|
if(len > __NEW_UTS_LEN)
|
||||||
goto done;
|
goto done;
|
||||||
if(copy_to_user(name, system_utsname.domainname, len))
|
if(copy_to_user(name, utsname()->domainname, len))
|
||||||
goto done;
|
goto done;
|
||||||
err = 0;
|
err = 0;
|
||||||
done:
|
done:
|
||||||
|
@ -260,7 +260,7 @@ long ppc_newuname(struct new_utsname __user * name)
|
|||||||
int err = 0;
|
int err = 0;
|
||||||
|
|
||||||
down_read(&uts_sem);
|
down_read(&uts_sem);
|
||||||
if (copy_to_user(name, &system_utsname, sizeof(*name)))
|
if (copy_to_user(name, utsname(), sizeof(*name)))
|
||||||
err = -EFAULT;
|
err = -EFAULT;
|
||||||
up_read(&uts_sem);
|
up_read(&uts_sem);
|
||||||
if (!err)
|
if (!err)
|
||||||
@ -273,7 +273,7 @@ int sys_uname(struct old_utsname __user *name)
|
|||||||
int err = 0;
|
int err = 0;
|
||||||
|
|
||||||
down_read(&uts_sem);
|
down_read(&uts_sem);
|
||||||
if (copy_to_user(name, &system_utsname, sizeof(*name)))
|
if (copy_to_user(name, utsname(), sizeof(*name)))
|
||||||
err = -EFAULT;
|
err = -EFAULT;
|
||||||
up_read(&uts_sem);
|
up_read(&uts_sem);
|
||||||
if (!err)
|
if (!err)
|
||||||
@ -289,19 +289,19 @@ int sys_olduname(struct oldold_utsname __user *name)
|
|||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
|
|
||||||
down_read(&uts_sem);
|
down_read(&uts_sem);
|
||||||
error = __copy_to_user(&name->sysname, &system_utsname.sysname,
|
error = __copy_to_user(&name->sysname, &utsname()->sysname,
|
||||||
__OLD_UTS_LEN);
|
__OLD_UTS_LEN);
|
||||||
error |= __put_user(0, name->sysname + __OLD_UTS_LEN);
|
error |= __put_user(0, name->sysname + __OLD_UTS_LEN);
|
||||||
error |= __copy_to_user(&name->nodename, &system_utsname.nodename,
|
error |= __copy_to_user(&name->nodename, &utsname()->nodename,
|
||||||
__OLD_UTS_LEN);
|
__OLD_UTS_LEN);
|
||||||
error |= __put_user(0, name->nodename + __OLD_UTS_LEN);
|
error |= __put_user(0, name->nodename + __OLD_UTS_LEN);
|
||||||
error |= __copy_to_user(&name->release, &system_utsname.release,
|
error |= __copy_to_user(&name->release, &utsname()->release,
|
||||||
__OLD_UTS_LEN);
|
__OLD_UTS_LEN);
|
||||||
error |= __put_user(0, name->release + __OLD_UTS_LEN);
|
error |= __put_user(0, name->release + __OLD_UTS_LEN);
|
||||||
error |= __copy_to_user(&name->version, &system_utsname.version,
|
error |= __copy_to_user(&name->version, &utsname()->version,
|
||||||
__OLD_UTS_LEN);
|
__OLD_UTS_LEN);
|
||||||
error |= __put_user(0, name->version + __OLD_UTS_LEN);
|
error |= __put_user(0, name->version + __OLD_UTS_LEN);
|
||||||
error |= __copy_to_user(&name->machine, &system_utsname.machine,
|
error |= __copy_to_user(&name->machine, &utsname()->machine,
|
||||||
__OLD_UTS_LEN);
|
__OLD_UTS_LEN);
|
||||||
error |= override_machine(name->machine);
|
error |= override_machine(name->machine);
|
||||||
up_read(&uts_sem);
|
up_read(&uts_sem);
|
||||||
|
@ -281,7 +281,7 @@ asmlinkage int sys_uname(struct old_utsname * name)
|
|||||||
if (!name)
|
if (!name)
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
down_read(&uts_sem);
|
down_read(&uts_sem);
|
||||||
err=copy_to_user(name, &system_utsname, sizeof (*name));
|
err = copy_to_user(name, utsname(), sizeof (*name));
|
||||||
up_read(&uts_sem);
|
up_read(&uts_sem);
|
||||||
return err?-EFAULT:0;
|
return err?-EFAULT:0;
|
||||||
}
|
}
|
||||||
|
@ -279,7 +279,7 @@ asmlinkage int sys_uname(struct old_utsname * name)
|
|||||||
if (!name)
|
if (!name)
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
down_read(&uts_sem);
|
down_read(&uts_sem);
|
||||||
err=copy_to_user(name, &system_utsname, sizeof (*name));
|
err = copy_to_user(name, utsname(), sizeof (*name));
|
||||||
up_read(&uts_sem);
|
up_read(&uts_sem);
|
||||||
return err?-EFAULT:0;
|
return err?-EFAULT:0;
|
||||||
}
|
}
|
||||||
|
@ -475,13 +475,13 @@ asmlinkage int sys_getdomainname(char __user *name, int len)
|
|||||||
|
|
||||||
down_read(&uts_sem);
|
down_read(&uts_sem);
|
||||||
|
|
||||||
nlen = strlen(system_utsname.domainname) + 1;
|
nlen = strlen(utsname()->domainname) + 1;
|
||||||
err = -EINVAL;
|
err = -EINVAL;
|
||||||
if (nlen > len)
|
if (nlen > len)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
err = -EFAULT;
|
err = -EFAULT;
|
||||||
if (!copy_to_user(name, system_utsname.domainname, nlen))
|
if (!copy_to_user(name, utsname()->domainname, nlen))
|
||||||
err = 0;
|
err = 0;
|
||||||
|
|
||||||
out:
|
out:
|
||||||
|
@ -483,13 +483,18 @@ asmlinkage int sunos_uname(struct sunos_utsname __user *name)
|
|||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
down_read(&uts_sem);
|
down_read(&uts_sem);
|
||||||
ret = copy_to_user(&name->sname[0], &system_utsname.sysname[0], sizeof(name->sname) - 1);
|
ret = copy_to_user(&name->sname[0], &utsname()->sysname[0],
|
||||||
|
sizeof(name->sname) - 1);
|
||||||
if (!ret) {
|
if (!ret) {
|
||||||
ret |= __copy_to_user(&name->nname[0], &system_utsname.nodename[0], sizeof(name->nname) - 1);
|
ret |= __copy_to_user(&name->nname[0], &utsname()->nodename[0],
|
||||||
|
sizeof(name->nname) - 1);
|
||||||
ret |= __put_user('\0', &name->nname[8]);
|
ret |= __put_user('\0', &name->nname[8]);
|
||||||
ret |= __copy_to_user(&name->rel[0], &system_utsname.release[0], sizeof(name->rel) - 1);
|
ret |= __copy_to_user(&name->rel[0], &utsname()->release[0],
|
||||||
ret |= __copy_to_user(&name->ver[0], &system_utsname.version[0], sizeof(name->ver) - 1);
|
sizeof(name->rel) - 1);
|
||||||
ret |= __copy_to_user(&name->mach[0], &system_utsname.machine[0], sizeof(name->mach) - 1);
|
ret |= __copy_to_user(&name->ver[0], &utsname()->version[0],
|
||||||
|
sizeof(name->ver) - 1);
|
||||||
|
ret |= __copy_to_user(&name->mach[0], &utsname()->machine[0],
|
||||||
|
sizeof(name->mach) - 1);
|
||||||
}
|
}
|
||||||
up_read(&uts_sem);
|
up_read(&uts_sem);
|
||||||
return ret ? -EFAULT : 0;
|
return ret ? -EFAULT : 0;
|
||||||
|
@ -712,13 +712,13 @@ asmlinkage long sys_getdomainname(char __user *name, int len)
|
|||||||
|
|
||||||
down_read(&uts_sem);
|
down_read(&uts_sem);
|
||||||
|
|
||||||
nlen = strlen(system_utsname.domainname) + 1;
|
nlen = strlen(utsname()->domainname) + 1;
|
||||||
err = -EINVAL;
|
err = -EINVAL;
|
||||||
if (nlen > len)
|
if (nlen > len)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
err = -EFAULT;
|
err = -EFAULT;
|
||||||
if (!copy_to_user(name, system_utsname.domainname, nlen))
|
if (!copy_to_user(name, utsname()->domainname, nlen))
|
||||||
err = 0;
|
err = 0;
|
||||||
|
|
||||||
out:
|
out:
|
||||||
|
@ -439,16 +439,16 @@ asmlinkage int sunos_uname(struct sunos_utsname __user *name)
|
|||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
down_read(&uts_sem);
|
down_read(&uts_sem);
|
||||||
ret = copy_to_user(&name->sname[0], &system_utsname.sysname[0],
|
ret = copy_to_user(&name->sname[0], &utsname()->sysname[0],
|
||||||
sizeof(name->sname) - 1);
|
sizeof(name->sname) - 1);
|
||||||
ret |= copy_to_user(&name->nname[0], &system_utsname.nodename[0],
|
ret |= copy_to_user(&name->nname[0], &utsname()->nodename[0],
|
||||||
sizeof(name->nname) - 1);
|
sizeof(name->nname) - 1);
|
||||||
ret |= put_user('\0', &name->nname[8]);
|
ret |= put_user('\0', &name->nname[8]);
|
||||||
ret |= copy_to_user(&name->rel[0], &system_utsname.release[0],
|
ret |= copy_to_user(&name->rel[0], &utsname()->release[0],
|
||||||
sizeof(name->rel) - 1);
|
sizeof(name->rel) - 1);
|
||||||
ret |= copy_to_user(&name->ver[0], &system_utsname.version[0],
|
ret |= copy_to_user(&name->ver[0], &utsname()->version[0],
|
||||||
sizeof(name->ver) - 1);
|
sizeof(name->ver) - 1);
|
||||||
ret |= copy_to_user(&name->mach[0], &system_utsname.machine[0],
|
ret |= copy_to_user(&name->mach[0], &utsname()->machine[0],
|
||||||
sizeof(name->mach) - 1);
|
sizeof(name->mach) - 1);
|
||||||
up_read(&uts_sem);
|
up_read(&uts_sem);
|
||||||
return (ret ? -EFAULT : 0);
|
return (ret ? -EFAULT : 0);
|
||||||
|
@ -249,7 +249,7 @@ asmlinkage int solaris_utssys(u32 buf, u32 flags, int which, u32 buf2)
|
|||||||
/* Let's cheat */
|
/* Let's cheat */
|
||||||
err = set_utsfield(v->sysname, "SunOS", 1, 0);
|
err = set_utsfield(v->sysname, "SunOS", 1, 0);
|
||||||
down_read(&uts_sem);
|
down_read(&uts_sem);
|
||||||
err |= set_utsfield(v->nodename, system_utsname.nodename,
|
err |= set_utsfield(v->nodename, utsname()->nodename,
|
||||||
1, 1);
|
1, 1);
|
||||||
up_read(&uts_sem);
|
up_read(&uts_sem);
|
||||||
err |= set_utsfield(v->release, "2.6", 0, 0);
|
err |= set_utsfield(v->release, "2.6", 0, 0);
|
||||||
@ -273,7 +273,7 @@ asmlinkage int solaris_utsname(u32 buf)
|
|||||||
/* Why should we not lie a bit? */
|
/* Why should we not lie a bit? */
|
||||||
down_read(&uts_sem);
|
down_read(&uts_sem);
|
||||||
err = set_utsfield(v->sysname, "SunOS", 0, 0);
|
err = set_utsfield(v->sysname, "SunOS", 0, 0);
|
||||||
err |= set_utsfield(v->nodename, system_utsname.nodename, 1, 1);
|
err |= set_utsfield(v->nodename, utsname()->nodename, 1, 1);
|
||||||
err |= set_utsfield(v->release, "5.6", 0, 0);
|
err |= set_utsfield(v->release, "5.6", 0, 0);
|
||||||
err |= set_utsfield(v->version, "Generic", 0, 0);
|
err |= set_utsfield(v->version, "Generic", 0, 0);
|
||||||
err |= set_utsfield(v->machine, machine(), 0, 0);
|
err |= set_utsfield(v->machine, machine(), 0, 0);
|
||||||
@ -305,7 +305,7 @@ asmlinkage int solaris_sysinfo(int cmd, u32 buf, s32 count)
|
|||||||
case SI_HOSTNAME:
|
case SI_HOSTNAME:
|
||||||
r = buffer + 256;
|
r = buffer + 256;
|
||||||
down_read(&uts_sem);
|
down_read(&uts_sem);
|
||||||
for (p = system_utsname.nodename, q = buffer;
|
for (p = utsname()->nodename, q = buffer;
|
||||||
q < r && *p && *p != '.'; *q++ = *p++);
|
q < r && *p && *p != '.'; *q++ = *p++);
|
||||||
up_read(&uts_sem);
|
up_read(&uts_sem);
|
||||||
*q = 0;
|
*q = 0;
|
||||||
|
@ -106,9 +106,9 @@ void mconsole_version(struct mc_request *req)
|
|||||||
{
|
{
|
||||||
char version[256];
|
char version[256];
|
||||||
|
|
||||||
sprintf(version, "%s %s %s %s %s", system_utsname.sysname,
|
sprintf(version, "%s %s %s %s %s", utsname()->sysname,
|
||||||
system_utsname.nodename, system_utsname.release,
|
utsname()->nodename, utsname()->release,
|
||||||
system_utsname.version, system_utsname.machine);
|
utsname()->version, utsname()->machine);
|
||||||
mconsole_reply(req, version, 0, 0);
|
mconsole_reply(req, version, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -110,7 +110,7 @@ long sys_uname(struct old_utsname __user * name)
|
|||||||
if (!name)
|
if (!name)
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
down_read(&uts_sem);
|
down_read(&uts_sem);
|
||||||
err = copy_to_user(name, &system_utsname, sizeof (*name));
|
err = copy_to_user(name, utsname(), sizeof (*name));
|
||||||
up_read(&uts_sem);
|
up_read(&uts_sem);
|
||||||
return err?-EFAULT:0;
|
return err?-EFAULT:0;
|
||||||
}
|
}
|
||||||
@ -126,21 +126,21 @@ long sys_olduname(struct oldold_utsname __user * name)
|
|||||||
|
|
||||||
down_read(&uts_sem);
|
down_read(&uts_sem);
|
||||||
|
|
||||||
error = __copy_to_user(&name->sysname,&system_utsname.sysname,
|
error = __copy_to_user(&name->sysname, &utsname()->sysname,
|
||||||
__OLD_UTS_LEN);
|
__OLD_UTS_LEN);
|
||||||
error |= __put_user(0,name->sysname+__OLD_UTS_LEN);
|
error |= __put_user(0, name->sysname + __OLD_UTS_LEN);
|
||||||
error |= __copy_to_user(&name->nodename,&system_utsname.nodename,
|
error |= __copy_to_user(&name->nodename, &utsname()->nodename,
|
||||||
__OLD_UTS_LEN);
|
__OLD_UTS_LEN);
|
||||||
error |= __put_user(0,name->nodename+__OLD_UTS_LEN);
|
error |= __put_user(0, name->nodename + __OLD_UTS_LEN);
|
||||||
error |= __copy_to_user(&name->release,&system_utsname.release,
|
error |= __copy_to_user(&name->release, &utsname()->release,
|
||||||
__OLD_UTS_LEN);
|
__OLD_UTS_LEN);
|
||||||
error |= __put_user(0,name->release+__OLD_UTS_LEN);
|
error |= __put_user(0, name->release + __OLD_UTS_LEN);
|
||||||
error |= __copy_to_user(&name->version,&system_utsname.version,
|
error |= __copy_to_user(&name->version, &utsname()->version,
|
||||||
__OLD_UTS_LEN);
|
__OLD_UTS_LEN);
|
||||||
error |= __put_user(0,name->version+__OLD_UTS_LEN);
|
error |= __put_user(0, name->version + __OLD_UTS_LEN);
|
||||||
error |= __copy_to_user(&name->machine,&system_utsname.machine,
|
error |= __copy_to_user(&name->machine, &utsname()->machine,
|
||||||
__OLD_UTS_LEN);
|
__OLD_UTS_LEN);
|
||||||
error |= __put_user(0,name->machine+__OLD_UTS_LEN);
|
error |= __put_user(0, name->machine + __OLD_UTS_LEN);
|
||||||
|
|
||||||
up_read(&uts_sem);
|
up_read(&uts_sem);
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ asmlinkage long sys_uname64(struct new_utsname __user * name)
|
|||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
down_read(&uts_sem);
|
down_read(&uts_sem);
|
||||||
err = copy_to_user(name, &system_utsname, sizeof (*name));
|
err = copy_to_user(name, utsname(), sizeof (*name));
|
||||||
up_read(&uts_sem);
|
up_read(&uts_sem);
|
||||||
if (personality(current->personality) == PER_LINUX32)
|
if (personality(current->personality) == PER_LINUX32)
|
||||||
err |= copy_to_user(&name->machine, "i686", 5);
|
err |= copy_to_user(&name->machine, "i686", 5);
|
||||||
|
@ -784,36 +784,36 @@ asmlinkage long sys32_olduname(struct oldold_utsname __user * name)
|
|||||||
|
|
||||||
if (!name)
|
if (!name)
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
if (!access_ok(VERIFY_WRITE,name,sizeof(struct oldold_utsname)))
|
if (!access_ok(VERIFY_WRITE, name, sizeof(struct oldold_utsname)))
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
|
|
||||||
down_read(&uts_sem);
|
down_read(&uts_sem);
|
||||||
|
|
||||||
err = __copy_to_user(&name->sysname,&system_utsname.sysname,
|
err = __copy_to_user(&name->sysname,&utsname()->sysname,
|
||||||
__OLD_UTS_LEN);
|
__OLD_UTS_LEN);
|
||||||
err |= __put_user(0,name->sysname+__OLD_UTS_LEN);
|
err |= __put_user(0,name->sysname+__OLD_UTS_LEN);
|
||||||
err |= __copy_to_user(&name->nodename,&system_utsname.nodename,
|
err |= __copy_to_user(&name->nodename,&utsname()->nodename,
|
||||||
__OLD_UTS_LEN);
|
__OLD_UTS_LEN);
|
||||||
err |= __put_user(0,name->nodename+__OLD_UTS_LEN);
|
err |= __put_user(0,name->nodename+__OLD_UTS_LEN);
|
||||||
err |= __copy_to_user(&name->release,&system_utsname.release,
|
err |= __copy_to_user(&name->release,&utsname()->release,
|
||||||
__OLD_UTS_LEN);
|
__OLD_UTS_LEN);
|
||||||
err |= __put_user(0,name->release+__OLD_UTS_LEN);
|
err |= __put_user(0,name->release+__OLD_UTS_LEN);
|
||||||
err |= __copy_to_user(&name->version,&system_utsname.version,
|
err |= __copy_to_user(&name->version,&utsname()->version,
|
||||||
__OLD_UTS_LEN);
|
__OLD_UTS_LEN);
|
||||||
err |= __put_user(0,name->version+__OLD_UTS_LEN);
|
err |= __put_user(0,name->version+__OLD_UTS_LEN);
|
||||||
{
|
{
|
||||||
char *arch = "x86_64";
|
char *arch = "x86_64";
|
||||||
if (personality(current->personality) == PER_LINUX32)
|
if (personality(current->personality) == PER_LINUX32)
|
||||||
arch = "i686";
|
arch = "i686";
|
||||||
|
|
||||||
err |= __copy_to_user(&name->machine,arch,strlen(arch)+1);
|
err |= __copy_to_user(&name->machine, arch, strlen(arch)+1);
|
||||||
}
|
}
|
||||||
|
|
||||||
up_read(&uts_sem);
|
up_read(&uts_sem);
|
||||||
|
|
||||||
err = err ? -EFAULT : 0;
|
err = err ? -EFAULT : 0;
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
long sys32_uname(struct old_utsname __user * name)
|
long sys32_uname(struct old_utsname __user * name)
|
||||||
@ -822,7 +822,7 @@ long sys32_uname(struct old_utsname __user * name)
|
|||||||
if (!name)
|
if (!name)
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
down_read(&uts_sem);
|
down_read(&uts_sem);
|
||||||
err=copy_to_user(name, &system_utsname, sizeof (*name));
|
err = copy_to_user(name, utsname(), sizeof (*name));
|
||||||
up_read(&uts_sem);
|
up_read(&uts_sem);
|
||||||
if (personality(current->personality) == PER_LINUX32)
|
if (personality(current->personality) == PER_LINUX32)
|
||||||
err |= copy_to_user(&name->machine, "i686", 5);
|
err |= copy_to_user(&name->machine, "i686", 5);
|
||||||
|
@ -148,7 +148,7 @@ asmlinkage long sys_uname(struct new_utsname __user * name)
|
|||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
down_read(&uts_sem);
|
down_read(&uts_sem);
|
||||||
err = copy_to_user(name, &system_utsname, sizeof (*name));
|
err = copy_to_user(name, utsname(), sizeof (*name));
|
||||||
up_read(&uts_sem);
|
up_read(&uts_sem);
|
||||||
if (personality(current->personality) == PER_LINUX32)
|
if (personality(current->personality) == PER_LINUX32)
|
||||||
err |= copy_to_user(&name->machine, "i686", 5);
|
err |= copy_to_user(&name->machine, "i686", 5);
|
||||||
|
@ -128,7 +128,7 @@ out:
|
|||||||
|
|
||||||
int sys_uname(struct old_utsname * name)
|
int sys_uname(struct old_utsname * name)
|
||||||
{
|
{
|
||||||
if (name && !copy_to_user(name, &system_utsname, sizeof (*name)))
|
if (name && !copy_to_user(name, utsname(), sizeof (*name)))
|
||||||
return 0;
|
return 0;
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
}
|
}
|
||||||
|
@ -889,8 +889,8 @@ static void init_std_data(struct entropy_store *r)
|
|||||||
|
|
||||||
do_gettimeofday(&tv);
|
do_gettimeofday(&tv);
|
||||||
add_entropy_words(r, (__u32 *)&tv, sizeof(tv)/4);
|
add_entropy_words(r, (__u32 *)&tv, sizeof(tv)/4);
|
||||||
add_entropy_words(r, (__u32 *)&system_utsname,
|
add_entropy_words(r, (__u32 *)utsname(),
|
||||||
sizeof(system_utsname)/4);
|
sizeof(*(utsname()))/4);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int __init rand_initialize(void)
|
static int __init rand_initialize(void)
|
||||||
|
@ -772,12 +772,12 @@ cifs_parse_mount_options(char *options, const char *devname,struct smb_vol *vol)
|
|||||||
separator[1] = 0;
|
separator[1] = 0;
|
||||||
|
|
||||||
memset(vol->source_rfc1001_name,0x20,15);
|
memset(vol->source_rfc1001_name,0x20,15);
|
||||||
for(i=0;i < strnlen(system_utsname.nodename,15);i++) {
|
for(i=0;i < strnlen(utsname()->nodename,15);i++) {
|
||||||
/* does not have to be a perfect mapping since the field is
|
/* does not have to be a perfect mapping since the field is
|
||||||
informational, only used for servers that do not support
|
informational, only used for servers that do not support
|
||||||
port 445 and it can be overridden at mount time */
|
port 445 and it can be overridden at mount time */
|
||||||
vol->source_rfc1001_name[i] =
|
vol->source_rfc1001_name[i] =
|
||||||
toupper(system_utsname.nodename[i]);
|
toupper(utsname()->nodename[i]);
|
||||||
}
|
}
|
||||||
vol->source_rfc1001_name[15] = 0;
|
vol->source_rfc1001_name[15] = 0;
|
||||||
/* null target name indicates to use *SMBSERVR default called name
|
/* null target name indicates to use *SMBSERVR default called name
|
||||||
@ -2153,7 +2153,7 @@ CIFSSessSetup(unsigned int xid, struct cifsSesInfo *ses,
|
|||||||
32, nls_codepage);
|
32, nls_codepage);
|
||||||
bcc_ptr += 2 * bytes_returned;
|
bcc_ptr += 2 * bytes_returned;
|
||||||
bytes_returned =
|
bytes_returned =
|
||||||
cifs_strtoUCS((__le16 *) bcc_ptr, system_utsname.release,
|
cifs_strtoUCS((__le16 *) bcc_ptr, utsname()->release,
|
||||||
32, nls_codepage);
|
32, nls_codepage);
|
||||||
bcc_ptr += 2 * bytes_returned;
|
bcc_ptr += 2 * bytes_returned;
|
||||||
bcc_ptr += 2;
|
bcc_ptr += 2;
|
||||||
@ -2180,8 +2180,8 @@ CIFSSessSetup(unsigned int xid, struct cifsSesInfo *ses,
|
|||||||
}
|
}
|
||||||
strcpy(bcc_ptr, "Linux version ");
|
strcpy(bcc_ptr, "Linux version ");
|
||||||
bcc_ptr += strlen("Linux version ");
|
bcc_ptr += strlen("Linux version ");
|
||||||
strcpy(bcc_ptr, system_utsname.release);
|
strcpy(bcc_ptr, utsname()->release);
|
||||||
bcc_ptr += strlen(system_utsname.release) + 1;
|
bcc_ptr += strlen(utsname()->release) + 1;
|
||||||
strcpy(bcc_ptr, CIFS_NETWORK_OPSYS);
|
strcpy(bcc_ptr, CIFS_NETWORK_OPSYS);
|
||||||
bcc_ptr += strlen(CIFS_NETWORK_OPSYS) + 1;
|
bcc_ptr += strlen(CIFS_NETWORK_OPSYS) + 1;
|
||||||
}
|
}
|
||||||
@ -2445,7 +2445,7 @@ CIFSNTLMSSPNegotiateSessSetup(unsigned int xid,
|
|||||||
32, nls_codepage);
|
32, nls_codepage);
|
||||||
bcc_ptr += 2 * bytes_returned;
|
bcc_ptr += 2 * bytes_returned;
|
||||||
bytes_returned =
|
bytes_returned =
|
||||||
cifs_strtoUCS((__le16 *) bcc_ptr, system_utsname.release, 32,
|
cifs_strtoUCS((__le16 *) bcc_ptr, utsname()->release, 32,
|
||||||
nls_codepage);
|
nls_codepage);
|
||||||
bcc_ptr += 2 * bytes_returned;
|
bcc_ptr += 2 * bytes_returned;
|
||||||
bcc_ptr += 2; /* null terminate Linux version */
|
bcc_ptr += 2; /* null terminate Linux version */
|
||||||
@ -2462,8 +2462,8 @@ CIFSNTLMSSPNegotiateSessSetup(unsigned int xid,
|
|||||||
} else { /* ASCII */
|
} else { /* ASCII */
|
||||||
strcpy(bcc_ptr, "Linux version ");
|
strcpy(bcc_ptr, "Linux version ");
|
||||||
bcc_ptr += strlen("Linux version ");
|
bcc_ptr += strlen("Linux version ");
|
||||||
strcpy(bcc_ptr, system_utsname.release);
|
strcpy(bcc_ptr, utsname()->release);
|
||||||
bcc_ptr += strlen(system_utsname.release) + 1;
|
bcc_ptr += strlen(utsname()->release) + 1;
|
||||||
strcpy(bcc_ptr, CIFS_NETWORK_OPSYS);
|
strcpy(bcc_ptr, CIFS_NETWORK_OPSYS);
|
||||||
bcc_ptr += strlen(CIFS_NETWORK_OPSYS) + 1;
|
bcc_ptr += strlen(CIFS_NETWORK_OPSYS) + 1;
|
||||||
bcc_ptr++; /* empty domain field */
|
bcc_ptr++; /* empty domain field */
|
||||||
@ -2836,7 +2836,7 @@ CIFSNTLMSSPAuthSessSetup(unsigned int xid, struct cifsSesInfo *ses,
|
|||||||
32, nls_codepage);
|
32, nls_codepage);
|
||||||
bcc_ptr += 2 * bytes_returned;
|
bcc_ptr += 2 * bytes_returned;
|
||||||
bytes_returned =
|
bytes_returned =
|
||||||
cifs_strtoUCS((__le16 *) bcc_ptr, system_utsname.release, 32,
|
cifs_strtoUCS((__le16 *) bcc_ptr, utsname()->release, 32,
|
||||||
nls_codepage);
|
nls_codepage);
|
||||||
bcc_ptr += 2 * bytes_returned;
|
bcc_ptr += 2 * bytes_returned;
|
||||||
bcc_ptr += 2; /* null term version string */
|
bcc_ptr += 2; /* null term version string */
|
||||||
@ -2888,8 +2888,8 @@ CIFSNTLMSSPAuthSessSetup(unsigned int xid, struct cifsSesInfo *ses,
|
|||||||
|
|
||||||
strcpy(bcc_ptr, "Linux version ");
|
strcpy(bcc_ptr, "Linux version ");
|
||||||
bcc_ptr += strlen("Linux version ");
|
bcc_ptr += strlen("Linux version ");
|
||||||
strcpy(bcc_ptr, system_utsname.release);
|
strcpy(bcc_ptr, utsname()->release);
|
||||||
bcc_ptr += strlen(system_utsname.release) + 1;
|
bcc_ptr += strlen(utsname()->release) + 1;
|
||||||
strcpy(bcc_ptr, CIFS_NETWORK_OPSYS);
|
strcpy(bcc_ptr, CIFS_NETWORK_OPSYS);
|
||||||
bcc_ptr += strlen(CIFS_NETWORK_OPSYS) + 1;
|
bcc_ptr += strlen(CIFS_NETWORK_OPSYS) + 1;
|
||||||
bcc_ptr++; /* null domain */
|
bcc_ptr++; /* null domain */
|
||||||
|
@ -1318,7 +1318,7 @@ static void format_corename(char *corename, const char *pattern, long signr)
|
|||||||
case 'h':
|
case 'h':
|
||||||
down_read(&uts_sem);
|
down_read(&uts_sem);
|
||||||
rc = snprintf(out_ptr, out_end - out_ptr,
|
rc = snprintf(out_ptr, out_end - out_ptr,
|
||||||
"%s", system_utsname.nodename);
|
"%s", utsname()->nodename);
|
||||||
up_read(&uts_sem);
|
up_read(&uts_sem);
|
||||||
if (rc > out_end - out_ptr)
|
if (rc > out_end - out_ptr)
|
||||||
goto out;
|
goto out;
|
||||||
|
@ -129,11 +129,11 @@ static void nlmclnt_setlockargs(struct nlm_rqst *req, struct file_lock *fl)
|
|||||||
nlmclnt_next_cookie(&argp->cookie);
|
nlmclnt_next_cookie(&argp->cookie);
|
||||||
argp->state = nsm_local_state;
|
argp->state = nsm_local_state;
|
||||||
memcpy(&lock->fh, NFS_FH(fl->fl_file->f_dentry->d_inode), sizeof(struct nfs_fh));
|
memcpy(&lock->fh, NFS_FH(fl->fl_file->f_dentry->d_inode), sizeof(struct nfs_fh));
|
||||||
lock->caller = system_utsname.nodename;
|
lock->caller = utsname()->nodename;
|
||||||
lock->oh.data = req->a_owner;
|
lock->oh.data = req->a_owner;
|
||||||
lock->oh.len = snprintf(req->a_owner, sizeof(req->a_owner), "%u@%s",
|
lock->oh.len = snprintf(req->a_owner, sizeof(req->a_owner), "%u@%s",
|
||||||
(unsigned int)fl->fl_u.nfs_fl.owner->pid,
|
(unsigned int)fl->fl_u.nfs_fl.owner->pid,
|
||||||
system_utsname.nodename);
|
utsname()->nodename);
|
||||||
lock->svid = fl->fl_u.nfs_fl.owner->pid;
|
lock->svid = fl->fl_u.nfs_fl.owner->pid;
|
||||||
lock->fl.fl_start = fl->fl_start;
|
lock->fl.fl_start = fl->fl_start;
|
||||||
lock->fl.fl_end = fl->fl_end;
|
lock->fl.fl_end = fl->fl_end;
|
||||||
|
@ -145,7 +145,7 @@ xdr_encode_common(struct rpc_rqst *rqstp, u32 *p, struct nsm_args *argp)
|
|||||||
*/
|
*/
|
||||||
sprintf(buffer, "%u.%u.%u.%u", NIPQUAD(argp->addr));
|
sprintf(buffer, "%u.%u.%u.%u", NIPQUAD(argp->addr));
|
||||||
if (!(p = xdr_encode_string(p, buffer))
|
if (!(p = xdr_encode_string(p, buffer))
|
||||||
|| !(p = xdr_encode_string(p, system_utsname.nodename)))
|
|| !(p = xdr_encode_string(p, utsname()->nodename)))
|
||||||
return ERR_PTR(-EIO);
|
return ERR_PTR(-EIO);
|
||||||
*p++ = htonl(argp->prog);
|
*p++ = htonl(argp->prog);
|
||||||
*p++ = htonl(argp->vers);
|
*p++ = htonl(argp->vers);
|
||||||
|
@ -325,7 +325,7 @@ static int nlmsvc_setgrantargs(struct nlm_rqst *call, struct nlm_lock *lock)
|
|||||||
{
|
{
|
||||||
locks_copy_lock(&call->a_args.lock.fl, &lock->fl);
|
locks_copy_lock(&call->a_args.lock.fl, &lock->fl);
|
||||||
memcpy(&call->a_args.lock.fh, &lock->fh, sizeof(call->a_args.lock.fh));
|
memcpy(&call->a_args.lock.fh, &lock->fh, sizeof(call->a_args.lock.fh));
|
||||||
call->a_args.lock.caller = system_utsname.nodename;
|
call->a_args.lock.caller = utsname()->nodename;
|
||||||
call->a_args.lock.oh.len = lock->oh.len;
|
call->a_args.lock.oh.len = lock->oh.len;
|
||||||
|
|
||||||
/* set default data area */
|
/* set default data area */
|
||||||
|
@ -515,7 +515,7 @@ nlmclt_decode_res(struct rpc_rqst *req, u32 *p, struct nlm_res *resp)
|
|||||||
*/
|
*/
|
||||||
#define NLM_void_sz 0
|
#define NLM_void_sz 0
|
||||||
#define NLM_cookie_sz 1+XDR_QUADLEN(NLM_MAXCOOKIELEN)
|
#define NLM_cookie_sz 1+XDR_QUADLEN(NLM_MAXCOOKIELEN)
|
||||||
#define NLM_caller_sz 1+XDR_QUADLEN(sizeof(system_utsname.nodename))
|
#define NLM_caller_sz 1+XDR_QUADLEN(sizeof(utsname()->nodename))
|
||||||
#define NLM_netobj_sz 1+XDR_QUADLEN(XDR_MAX_NETOBJ)
|
#define NLM_netobj_sz 1+XDR_QUADLEN(XDR_MAX_NETOBJ)
|
||||||
/* #define NLM_owner_sz 1+XDR_QUADLEN(NLM_MAXOWNER) */
|
/* #define NLM_owner_sz 1+XDR_QUADLEN(NLM_MAXOWNER) */
|
||||||
#define NLM_fhandle_sz 1+XDR_QUADLEN(NFS2_FHSIZE)
|
#define NLM_fhandle_sz 1+XDR_QUADLEN(NFS2_FHSIZE)
|
||||||
|
@ -312,7 +312,7 @@ static int __init root_nfs_name(char *name)
|
|||||||
/* Override them by options set on kernel command-line */
|
/* Override them by options set on kernel command-line */
|
||||||
root_nfs_parse(name, buf);
|
root_nfs_parse(name, buf);
|
||||||
|
|
||||||
cp = system_utsname.nodename;
|
cp = utsname()->nodename;
|
||||||
if (strlen(buf) + strlen(cp) > NFS_MAXPATHLEN) {
|
if (strlen(buf) + strlen(cp) > NFS_MAXPATHLEN) {
|
||||||
printk(KERN_ERR "Root-NFS: Pathname for remote directory too long.\n");
|
printk(KERN_ERR "Root-NFS: Pathname for remote directory too long.\n");
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -112,7 +112,7 @@ typedef struct user_fxsr_struct elf_fpxregset_t;
|
|||||||
For the moment, we have only optimizations for the Intel generations,
|
For the moment, we have only optimizations for the Intel generations,
|
||||||
but that could change... */
|
but that could change... */
|
||||||
|
|
||||||
#define ELF_PLATFORM (system_utsname.machine)
|
#define ELF_PLATFORM (utsname()->machine)
|
||||||
|
|
||||||
#define SET_PERSONALITY(ex, ibcs2) do { } while (0)
|
#define SET_PERSONALITY(ex, ibcs2) do { } while (0)
|
||||||
|
|
||||||
|
@ -80,7 +80,7 @@ struct nlm_wait;
|
|||||||
/*
|
/*
|
||||||
* Memory chunk for NLM client RPC request.
|
* Memory chunk for NLM client RPC request.
|
||||||
*/
|
*/
|
||||||
#define NLMCLNT_OHSIZE (sizeof(system_utsname.nodename)+10)
|
#define NLMCLNT_OHSIZE (sizeof(utsname()->nodename)+10)
|
||||||
struct nlm_rqst {
|
struct nlm_rqst {
|
||||||
unsigned int a_flags; /* initial RPC task flags */
|
unsigned int a_flags; /* initial RPC task flags */
|
||||||
struct nlm_host * a_host; /* host handle */
|
struct nlm_host * a_host; /* host handle */
|
||||||
|
14
kernel/sys.c
14
kernel/sys.c
@ -1655,7 +1655,7 @@ asmlinkage long sys_newuname(struct new_utsname __user * name)
|
|||||||
int errno = 0;
|
int errno = 0;
|
||||||
|
|
||||||
down_read(&uts_sem);
|
down_read(&uts_sem);
|
||||||
if (copy_to_user(name,&system_utsname,sizeof *name))
|
if (copy_to_user(name, utsname(), sizeof *name))
|
||||||
errno = -EFAULT;
|
errno = -EFAULT;
|
||||||
up_read(&uts_sem);
|
up_read(&uts_sem);
|
||||||
return errno;
|
return errno;
|
||||||
@ -1673,8 +1673,8 @@ asmlinkage long sys_sethostname(char __user *name, int len)
|
|||||||
down_write(&uts_sem);
|
down_write(&uts_sem);
|
||||||
errno = -EFAULT;
|
errno = -EFAULT;
|
||||||
if (!copy_from_user(tmp, name, len)) {
|
if (!copy_from_user(tmp, name, len)) {
|
||||||
memcpy(system_utsname.nodename, tmp, len);
|
memcpy(utsname()->nodename, tmp, len);
|
||||||
system_utsname.nodename[len] = 0;
|
utsname()->nodename[len] = 0;
|
||||||
errno = 0;
|
errno = 0;
|
||||||
}
|
}
|
||||||
up_write(&uts_sem);
|
up_write(&uts_sem);
|
||||||
@ -1690,11 +1690,11 @@ asmlinkage long sys_gethostname(char __user *name, int len)
|
|||||||
if (len < 0)
|
if (len < 0)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
down_read(&uts_sem);
|
down_read(&uts_sem);
|
||||||
i = 1 + strlen(system_utsname.nodename);
|
i = 1 + strlen(utsname()->nodename);
|
||||||
if (i > len)
|
if (i > len)
|
||||||
i = len;
|
i = len;
|
||||||
errno = 0;
|
errno = 0;
|
||||||
if (copy_to_user(name, system_utsname.nodename, i))
|
if (copy_to_user(name, utsname()->nodename, i))
|
||||||
errno = -EFAULT;
|
errno = -EFAULT;
|
||||||
up_read(&uts_sem);
|
up_read(&uts_sem);
|
||||||
return errno;
|
return errno;
|
||||||
@ -1719,8 +1719,8 @@ asmlinkage long sys_setdomainname(char __user *name, int len)
|
|||||||
down_write(&uts_sem);
|
down_write(&uts_sem);
|
||||||
errno = -EFAULT;
|
errno = -EFAULT;
|
||||||
if (!copy_from_user(tmp, name, len)) {
|
if (!copy_from_user(tmp, name, len)) {
|
||||||
memcpy(system_utsname.domainname, tmp, len);
|
memcpy(utsname()->domainname, tmp, len);
|
||||||
system_utsname.domainname[len] = 0;
|
utsname()->domainname[len] = 0;
|
||||||
errno = 0;
|
errno = 0;
|
||||||
}
|
}
|
||||||
up_write(&uts_sem);
|
up_write(&uts_sem);
|
||||||
|
@ -805,7 +805,7 @@ static void __init ic_do_bootp_ext(u8 *ext)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 12: /* Host name */
|
case 12: /* Host name */
|
||||||
ic_bootp_string(system_utsname.nodename, ext+1, *ext, __NEW_UTS_LEN);
|
ic_bootp_string(utsname()->nodename, ext+1, *ext, __NEW_UTS_LEN);
|
||||||
ic_host_name_set = 1;
|
ic_host_name_set = 1;
|
||||||
break;
|
break;
|
||||||
case 15: /* Domain name (DNS) */
|
case 15: /* Domain name (DNS) */
|
||||||
@ -816,7 +816,7 @@ static void __init ic_do_bootp_ext(u8 *ext)
|
|||||||
ic_bootp_string(root_server_path, ext+1, *ext, sizeof(root_server_path));
|
ic_bootp_string(root_server_path, ext+1, *ext, sizeof(root_server_path));
|
||||||
break;
|
break;
|
||||||
case 40: /* NIS Domain name (_not_ DNS) */
|
case 40: /* NIS Domain name (_not_ DNS) */
|
||||||
ic_bootp_string(system_utsname.domainname, ext+1, *ext, __NEW_UTS_LEN);
|
ic_bootp_string(utsname()->domainname, ext+1, *ext, __NEW_UTS_LEN);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1368,7 +1368,7 @@ static int __init ip_auto_config(void)
|
|||||||
printk(", mask=%u.%u.%u.%u", NIPQUAD(ic_netmask));
|
printk(", mask=%u.%u.%u.%u", NIPQUAD(ic_netmask));
|
||||||
printk(", gw=%u.%u.%u.%u", NIPQUAD(ic_gateway));
|
printk(", gw=%u.%u.%u.%u", NIPQUAD(ic_gateway));
|
||||||
printk(",\n host=%s, domain=%s, nis-domain=%s",
|
printk(",\n host=%s, domain=%s, nis-domain=%s",
|
||||||
system_utsname.nodename, ic_domain, system_utsname.domainname);
|
utsname()->nodename, ic_domain, utsname()->domainname);
|
||||||
printk(",\n bootserver=%u.%u.%u.%u", NIPQUAD(ic_servaddr));
|
printk(",\n bootserver=%u.%u.%u.%u", NIPQUAD(ic_servaddr));
|
||||||
printk(", rootserver=%u.%u.%u.%u", NIPQUAD(root_server_addr));
|
printk(", rootserver=%u.%u.%u.%u", NIPQUAD(root_server_addr));
|
||||||
printk(", rootpath=%s", root_server_path);
|
printk(", rootpath=%s", root_server_path);
|
||||||
@ -1478,11 +1478,11 @@ static int __init ip_auto_config_setup(char *addrs)
|
|||||||
case 4:
|
case 4:
|
||||||
if ((dp = strchr(ip, '.'))) {
|
if ((dp = strchr(ip, '.'))) {
|
||||||
*dp++ = '\0';
|
*dp++ = '\0';
|
||||||
strlcpy(system_utsname.domainname, dp,
|
strlcpy(utsname()->domainname, dp,
|
||||||
sizeof(system_utsname.domainname));
|
sizeof(utsname()->domainname));
|
||||||
}
|
}
|
||||||
strlcpy(system_utsname.nodename, ip,
|
strlcpy(utsname()->nodename, ip,
|
||||||
sizeof(system_utsname.nodename));
|
sizeof(utsname()->nodename));
|
||||||
ic_host_name_set = 1;
|
ic_host_name_set = 1;
|
||||||
break;
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
|
@ -161,10 +161,10 @@ static struct rpc_clnt * rpc_new_client(struct rpc_xprt *xprt, char *servname, s
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* save the nodename */
|
/* save the nodename */
|
||||||
clnt->cl_nodelen = strlen(system_utsname.nodename);
|
clnt->cl_nodelen = strlen(utsname()->nodename);
|
||||||
if (clnt->cl_nodelen > UNX_MAXNODENAME)
|
if (clnt->cl_nodelen > UNX_MAXNODENAME)
|
||||||
clnt->cl_nodelen = UNX_MAXNODENAME;
|
clnt->cl_nodelen = UNX_MAXNODENAME;
|
||||||
memcpy(clnt->cl_nodename, system_utsname.nodename, clnt->cl_nodelen);
|
memcpy(clnt->cl_nodename, utsname()->nodename, clnt->cl_nodelen);
|
||||||
return clnt;
|
return clnt;
|
||||||
|
|
||||||
out_no_auth:
|
out_no_auth:
|
||||||
|
Loading…
Reference in New Issue
Block a user