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 *);