Module Name: src Committed By: kamil Date: Fri Jun 21 14:58:32 UTC 2019
Modified Files: src/sys/kern: vfs_syscalls.c Log Message: Restore ability to create regular files with mknod(2) This behavior is requested in ATF tests. To generate a diff of this commit: cvs rdiff -u -r1.531 -r1.532 src/sys/kern/vfs_syscalls.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/kern/vfs_syscalls.c diff -u src/sys/kern/vfs_syscalls.c:1.531 src/sys/kern/vfs_syscalls.c:1.532 --- src/sys/kern/vfs_syscalls.c:1.531 Thu Jun 20 03:31:54 2019 +++ src/sys/kern/vfs_syscalls.c Fri Jun 21 14:58:32 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: vfs_syscalls.c,v 1.531 2019/06/20 03:31:54 kamil Exp $ */ +/* $NetBSD: vfs_syscalls.c,v 1.532 2019/06/21 14:58:32 kamil Exp $ */ /*- * Copyright (c) 2008, 2009 The NetBSD Foundation, Inc. @@ -70,7 +70,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: vfs_syscalls.c,v 1.531 2019/06/20 03:31:54 kamil Exp $"); +__KERNEL_RCSID(0, "$NetBSD: vfs_syscalls.c,v 1.532 2019/06/21 14:58:32 kamil Exp $"); #ifdef _KERNEL_OPT #include "opt_fileassoc.h" @@ -2156,13 +2156,18 @@ do_posix_mknodat(struct lwp *l, int fdat dev_t dev) { + /* + * The POSIX mknod(2) call is an alias for mkfifo(2) for S_IFIFO + * in mode and dev=0. + * + * In all the other cases it's implementation defined behavior. + */ + if ((mode & S_IFIFO) && dev == 0) return do_sys_mkfifoat(l, fdat, pathname, mode); - else if (mode & (S_IFCHR | S_IFBLK)) + else return do_sys_mknodat(l, fdat, pathname, mode, dev, UIO_USERSPACE); - else - return EINVAL; } /*