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

Reply via email to