Module Name: src
Committed By: haad
Date: Sun Aug 9 22:49:01 UTC 2009
Modified Files:
src/sys/compat/common: vfs_syscalls_50.c
src/sys/compat/darwin: darwin_stat.c
src/sys/compat/ibcs2: ibcs2_misc.c
src/sys/compat/linux/common: linux_file.c
src/sys/compat/netbsd32: netbsd32_compat_50.c netbsd32_netbsd.c
src/sys/compat/osf1: osf1_file.c
src/sys/compat/svr4: svr4_misc.c
src/sys/kern: vfs_syscalls.c
src/sys/sys: vfs_syscalls.h
Log Message:
Add enum uio_seg argument to do_sys_mknod and do_sys_mkdir so these functions
can be called from kernel, too.
Change needed for zfs device node creation, until we have propoer devfs.
Oked by a...@.
To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/sys/compat/common/vfs_syscalls_50.c
cvs rdiff -u -r1.15 -r1.16 src/sys/compat/darwin/darwin_stat.c
cvs rdiff -u -r1.107 -r1.108 src/sys/compat/ibcs2/ibcs2_misc.c
cvs rdiff -u -r1.97 -r1.98 src/sys/compat/linux/common/linux_file.c
cvs rdiff -u -r1.4 -r1.5 src/sys/compat/netbsd32/netbsd32_compat_50.c
cvs rdiff -u -r1.157 -r1.158 src/sys/compat/netbsd32/netbsd32_netbsd.c
cvs rdiff -u -r1.36 -r1.37 src/sys/compat/osf1/osf1_file.c
cvs rdiff -u -r1.145 -r1.146 src/sys/compat/svr4/svr4_misc.c
cvs rdiff -u -r1.398 -r1.399 src/sys/kern/vfs_syscalls.c
cvs rdiff -u -r1.12 -r1.13 src/sys/sys/vfs_syscalls.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/compat/common/vfs_syscalls_50.c
diff -u src/sys/compat/common/vfs_syscalls_50.c:1.4 src/sys/compat/common/vfs_syscalls_50.c:1.5
--- src/sys/compat/common/vfs_syscalls_50.c:1.4 Mon Jan 26 13:00:04 2009
+++ src/sys/compat/common/vfs_syscalls_50.c Sun Aug 9 22:49:00 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: vfs_syscalls_50.c,v 1.4 2009/01/26 13:00:04 njoly Exp $ */
+/* $NetBSD: vfs_syscalls_50.c,v 1.5 2009/08/09 22:49:00 haad Exp $ */
/*-
* Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -36,7 +36,7 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vfs_syscalls_50.c,v 1.4 2009/01/26 13:00:04 njoly Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vfs_syscalls_50.c,v 1.5 2009/08/09 22:49:00 haad Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -309,5 +309,5 @@
syscallarg(uint32_t) dev;
} */
return do_sys_mknod(l, SCARG(uap, path), SCARG(uap, mode),
- SCARG(uap, dev), retval);
+ SCARG(uap, dev), retval, UIO_USERSPACE);
}
Index: src/sys/compat/darwin/darwin_stat.c
diff -u src/sys/compat/darwin/darwin_stat.c:1.15 src/sys/compat/darwin/darwin_stat.c:1.16
--- src/sys/compat/darwin/darwin_stat.c:1.15 Sun Jan 11 02:45:47 2009
+++ src/sys/compat/darwin/darwin_stat.c Sun Aug 9 22:49:00 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: darwin_stat.c,v 1.15 2009/01/11 02:45:47 christos Exp $ */
+/* $NetBSD: darwin_stat.c,v 1.16 2009/08/09 22:49:00 haad Exp $ */
/*-
* Copyright (c) 2003, 2008 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: darwin_stat.c,v 1.15 2009/01/11 02:45:47 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: darwin_stat.c,v 1.16 2009/08/09 22:49:00 haad Exp $");
#include <sys/types.h>
#include <sys/param.h>
@@ -131,5 +131,5 @@
} */
return do_sys_mknod(l, SCARG(uap, path), SCARG(uap, mode),
- darwin_to_native_dev(SCARG(uap, dev)), retval);
+ darwin_to_native_dev(SCARG(uap, dev)), retval, UIO_USERSPACE);
}
Index: src/sys/compat/ibcs2/ibcs2_misc.c
diff -u src/sys/compat/ibcs2/ibcs2_misc.c:1.107 src/sys/compat/ibcs2/ibcs2_misc.c:1.108
--- src/sys/compat/ibcs2/ibcs2_misc.c:1.107 Fri May 15 16:59:07 2009
+++ src/sys/compat/ibcs2/ibcs2_misc.c Sun Aug 9 22:49:00 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: ibcs2_misc.c,v 1.107 2009/05/15 16:59:07 pooka Exp $ */
+/* $NetBSD: ibcs2_misc.c,v 1.108 2009/08/09 22:49:00 haad Exp $ */
/*
* Copyright (c) 1992, 1993
@@ -95,7 +95,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ibcs2_misc.c,v 1.107 2009/05/15 16:59:07 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ibcs2_misc.c,v 1.108 2009/08/09 22:49:00 haad Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -634,7 +634,7 @@
return sys_mkfifo(l, &ap, retval);
} else {
return do_sys_mknod(l, SCARG(uap, path), SCARG(uap, mode),
- SCARG(uap, dev), retval);
+ SCARG(uap, dev), retval, UIO_USERSPACE);
}
}
Index: src/sys/compat/linux/common/linux_file.c
diff -u src/sys/compat/linux/common/linux_file.c:1.97 src/sys/compat/linux/common/linux_file.c:1.98
--- src/sys/compat/linux/common/linux_file.c:1.97 Sun Jan 11 02:45:48 2009
+++ src/sys/compat/linux/common/linux_file.c Sun Aug 9 22:49:01 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: linux_file.c,v 1.97 2009/01/11 02:45:48 christos Exp $ */
+/* $NetBSD: linux_file.c,v 1.98 2009/08/09 22:49:01 haad Exp $ */
/*-
* Copyright (c) 1995, 1998, 2008 The NetBSD Foundation, Inc.
@@ -35,7 +35,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_file.c,v 1.97 2009/01/11 02:45:48 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_file.c,v 1.98 2009/08/09 22:49:01 haad Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -544,7 +544,7 @@
* upper 16bit to remove any random junk.
*/
return do_sys_mknod(l, SCARG(uap, path), SCARG(uap, mode),
- SCARG(uap, dev) & 0xffff, retval);
+ SCARG(uap, dev) & 0xffff, retval, UIO_USERSPACE);
}
}
Index: src/sys/compat/netbsd32/netbsd32_compat_50.c
diff -u src/sys/compat/netbsd32/netbsd32_compat_50.c:1.4 src/sys/compat/netbsd32/netbsd32_compat_50.c:1.5
--- src/sys/compat/netbsd32/netbsd32_compat_50.c:1.4 Sun Mar 29 19:21:19 2009
+++ src/sys/compat/netbsd32/netbsd32_compat_50.c Sun Aug 9 22:49:01 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: netbsd32_compat_50.c,v 1.4 2009/03/29 19:21:19 christos Exp $ */
+/* $NetBSD: netbsd32_compat_50.c,v 1.5 2009/08/09 22:49:01 haad Exp $ */
/*-
* Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -36,7 +36,7 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_50.c,v 1.4 2009/03/29 19:21:19 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_50.c,v 1.5 2009/08/09 22:49:01 haad Exp $");
#if defined(_KERNEL_OPT)
#include "opt_sysv.h"
@@ -113,7 +113,7 @@
syscallarg(uint32_t) dev;
} */
return do_sys_mknod(l, SCARG_P32(uap, path), SCARG(uap, mode),
- SCARG(uap, dev), retval);
+ SCARG(uap, dev), retval, UIO_USERSPACE);
}
int
Index: src/sys/compat/netbsd32/netbsd32_netbsd.c
diff -u src/sys/compat/netbsd32/netbsd32_netbsd.c:1.157 src/sys/compat/netbsd32/netbsd32_netbsd.c:1.158
--- src/sys/compat/netbsd32/netbsd32_netbsd.c:1.157 Sun May 17 05:57:01 2009
+++ src/sys/compat/netbsd32/netbsd32_netbsd.c Sun Aug 9 22:49:01 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: netbsd32_netbsd.c,v 1.157 2009/05/17 05:57:01 pooka Exp $ */
+/* $NetBSD: netbsd32_netbsd.c,v 1.158 2009/08/09 22:49:01 haad Exp $ */
/*
* Copyright (c) 1998, 2001, 2008 Matthew R. Green
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: netbsd32_netbsd.c,v 1.157 2009/05/17 05:57:01 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_netbsd.c,v 1.158 2009/08/09 22:49:01 haad Exp $");
#if defined(_KERNEL_OPT)
#include "opt_ddb.h"
@@ -327,7 +327,7 @@
} */
return do_sys_mknod(l, SCARG_P32(uap, path), SCARG(uap, mode),
- SCARG(uap, dev), retval);
+ SCARG(uap, dev), retval, UIO_USERSPACE);
}
int
Index: src/sys/compat/osf1/osf1_file.c
diff -u src/sys/compat/osf1/osf1_file.c:1.36 src/sys/compat/osf1/osf1_file.c:1.37
--- src/sys/compat/osf1/osf1_file.c:1.36 Fri May 29 09:32:41 2009
+++ src/sys/compat/osf1/osf1_file.c Sun Aug 9 22:49:01 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: osf1_file.c,v 1.36 2009/05/29 09:32:41 njoly Exp $ */
+/* $NetBSD: osf1_file.c,v 1.37 2009/08/09 22:49:01 haad Exp $ */
/*
* Copyright (c) 1999 Christopher G. Demetriou. All rights reserved.
@@ -58,7 +58,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: osf1_file.c,v 1.36 2009/05/29 09:32:41 njoly Exp $");
+__KERNEL_RCSID(0, "$NetBSD: osf1_file.c,v 1.37 2009/08/09 22:49:01 haad Exp $");
#if defined(_KERNEL_OPT)
#include "opt_syscall_debug.h"
@@ -293,7 +293,7 @@
{
return do_sys_mknod(l, SCARG(uap, path), SCARG(uap, mode),
- osf1_cvt_dev_to_native(SCARG(uap, dev)), retval);
+ osf1_cvt_dev_to_native(SCARG(uap, dev)), retval, UIO_USERSPACE);
}
int
Index: src/sys/compat/svr4/svr4_misc.c
diff -u src/sys/compat/svr4/svr4_misc.c:1.145 src/sys/compat/svr4/svr4_misc.c:1.146
--- src/sys/compat/svr4/svr4_misc.c:1.145 Sun Jan 11 02:45:50 2009
+++ src/sys/compat/svr4/svr4_misc.c Sun Aug 9 22:49:01 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: svr4_misc.c,v 1.145 2009/01/11 02:45:50 christos Exp $ */
+/* $NetBSD: svr4_misc.c,v 1.146 2009/08/09 22:49:01 haad Exp $ */
/*-
* Copyright (c) 1994, 2008 The NetBSD Foundation, Inc.
@@ -37,7 +37,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: svr4_misc.c,v 1.145 2009/01/11 02:45:50 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: svr4_misc.c,v 1.146 2009/08/09 22:49:01 haad Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -521,7 +521,7 @@
SCARG(&ap, mode) = mode;
return sys_mkfifo(l, &ap, retval);
} else {
- return do_sys_mknod(l, path, mode, dev, retval);
+ return do_sys_mknod(l, path, mode, dev, retval, UIO_USERSPACE);
}
}
Index: src/sys/kern/vfs_syscalls.c
diff -u src/sys/kern/vfs_syscalls.c:1.398 src/sys/kern/vfs_syscalls.c:1.399
--- src/sys/kern/vfs_syscalls.c:1.398 Sun Aug 2 20:44:55 2009
+++ src/sys/kern/vfs_syscalls.c Sun Aug 9 22:49:00 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: vfs_syscalls.c,v 1.398 2009/08/02 20:44:55 bad Exp $ */
+/* $NetBSD: vfs_syscalls.c,v 1.399 2009/08/09 22:49:00 haad Exp $ */
/*-
* Copyright (c) 2008, 2009 The NetBSD Foundation, Inc.
@@ -66,7 +66,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vfs_syscalls.c,v 1.398 2009/08/02 20:44:55 bad Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vfs_syscalls.c,v 1.399 2009/08/09 22:49:00 haad Exp $");
#ifdef _KERNEL_OPT
#include "opt_fileassoc.h"
@@ -1806,12 +1806,12 @@
syscallarg(dev_t) dev;
} */
return do_sys_mknod(l, SCARG(uap, path), SCARG(uap, mode),
- SCARG(uap, dev), retval);
+ SCARG(uap, dev), retval, UIO_USERSPACE);
}
int
do_sys_mknod(struct lwp *l, const char *pathname, mode_t mode, dev_t dev,
- register_t *retval)
+ register_t *retval, enum uio_seg seg)
{
struct proc *p = l->l_proc;
struct vnode *vp;
@@ -1820,7 +1820,6 @@
struct nameidata nd;
char *path;
const char *cpath;
- enum uio_seg seg = UIO_USERSPACE;
if ((error = kauth_authorize_system(l->l_cred, KAUTH_SYSTEM_MKNOD,
0, NULL, NULL, NULL)) != 0)
@@ -3430,11 +3429,11 @@
syscallarg(int) mode;
} */
- return do_sys_mkdir(SCARG(uap, path), SCARG(uap, mode));
+ return do_sys_mkdir(SCARG(uap, path), SCARG(uap, mode), UIO_USERSPACE);
}
int
-do_sys_mkdir(const char *path, mode_t mode)
+do_sys_mkdir(const char *path, mode_t mode, enum uio_seg seg)
{
struct proc *p = curlwp->l_proc;
struct vnode *vp;
@@ -3443,7 +3442,7 @@
struct nameidata nd;
NDINIT(&nd, CREATE, LOCKPARENT | CREATEDIR | TRYEMULROOT,
- UIO_USERSPACE, path);
+ seg, path);
if ((error = namei(&nd)) != 0)
return (error);
vp = nd.ni_vp;
Index: src/sys/sys/vfs_syscalls.h
diff -u src/sys/sys/vfs_syscalls.h:1.12 src/sys/sys/vfs_syscalls.h:1.13
--- src/sys/sys/vfs_syscalls.h:1.12 Sat Aug 1 21:17:12 2009
+++ src/sys/sys/vfs_syscalls.h Sun Aug 9 22:49:00 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: vfs_syscalls.h,v 1.12 2009/08/01 21:17:12 bad Exp $ */
+/* $NetBSD: vfs_syscalls.h,v 1.13 2009/08/09 22:49:00 haad Exp $ */
/*
* Copyright (c) 2007, 2008, 2009 The NetBSD Foundation, Inc.
@@ -62,8 +62,9 @@
int do_sys_unlink(const char *, enum uio_seg);
int do_sys_rename(const char *, const char *, enum uio_seg, int);
-int do_sys_mknod(struct lwp *l, const char *, mode_t, dev_t, register_t *);
-int do_sys_mkdir(const char *, mode_t);
+int do_sys_mknod(struct lwp *, const char *, mode_t, dev_t, register_t *,
+ enum uio_seg);
+int do_sys_mkdir(const char *, mode_t, enum uio_seg);
int chdir_lookup(const char *, int, struct vnode **, struct lwp *);
void change_root(struct cwdinfo *, struct vnode *, struct lwp *);