Module Name: src Committed By: hannken Date: Wed May 22 08:42:57 UTC 2019
Modified Files: src/external/cddl/osnet/sys/kern: vfs.c src/external/cddl/osnet/sys/sys: pathname.h Log Message: Implement the needed part of Solaris lookupname(). Remove unneeded protoype lookupnameat(). To generate a diff of this commit: cvs rdiff -u -r1.7 -r1.8 src/external/cddl/osnet/sys/kern/vfs.c cvs rdiff -u -r1.4 -r1.5 src/external/cddl/osnet/sys/sys/pathname.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/external/cddl/osnet/sys/kern/vfs.c diff -u src/external/cddl/osnet/sys/kern/vfs.c:1.7 src/external/cddl/osnet/sys/kern/vfs.c:1.8 --- src/external/cddl/osnet/sys/kern/vfs.c:1.7 Mon May 28 21:05:09 2018 +++ src/external/cddl/osnet/sys/kern/vfs.c Wed May 22 08:42:57 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: vfs.c,v 1.7 2018/05/28 21:05:09 chs Exp $ */ +/* $NetBSD: vfs.c,v 1.8 2019/05/22 08:42:57 hannken Exp $ */ /*- * Copyright (c) 2006-2007 Pawel Jakub Dawidek <p...@freebsd.org> @@ -40,35 +40,24 @@ __FBSDID("$FreeBSD: head/sys/cddl/compat #include <lib/libkern/libkern.h> int -lookupname(char *dirname, enum uio_seg seg, enum symfollow follow, vnode_t **dirvpp, vnode_t **compvpp) +lookupname(char *dirname, enum uio_seg seg, enum symfollow follow, + vnode_t **dirvpp, vnode_t **compvpp) { - return (lookupnameat(dirname, seg, follow, dirvpp, compvpp, NULL)); -} - -int -lookupnameat(char *dirname, enum uio_seg seg, enum symfollow follow, - vnode_t **dirvpp, vnode_t **compvpp, vnode_t *startvp) -{ - - struct nameidata nd; int error; - error = EOPNOTSUPP; - -/* XXX Disable until I upgrade testing kernel. - KASSERT(dirvpp == NULL); + KASSERT(seg == UIO_SYSSPACE); + KASSERT(dirvpp == NULL); - NDINIT(&nd, LOOKUP, FOLLOW, UIO_SYSSPACE, dirname); + *compvpp = NULL; + error = namei_simple_kernel(dirname, + follow == FOLLOW ? NSM_FOLLOW_NOEMULROOT : NSM_NOFOLLOW_NOEMULROOT, + compvpp); - if ((error = nameiat(&nd, startvp)) != 0) - return error; + KASSERT(error == 0 || *compvpp == NULL); - *compvpp = nd.ni_vp;*/ - - return (error); + return error; } - void vfs_setmntopt(vfs_t *vfsp, const char *name, const char *arg, int flags) Index: src/external/cddl/osnet/sys/sys/pathname.h diff -u src/external/cddl/osnet/sys/sys/pathname.h:1.4 src/external/cddl/osnet/sys/sys/pathname.h:1.5 --- src/external/cddl/osnet/sys/sys/pathname.h:1.4 Mon May 28 21:05:10 2018 +++ src/external/cddl/osnet/sys/sys/pathname.h Wed May 22 08:42:57 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: pathname.h,v 1.4 2018/05/28 21:05:10 chs Exp $ */ +/* $NetBSD: pathname.h,v 1.5 2019/05/22 08:42:57 hannken Exp $ */ /*- * Copyright (c) 2007 Pawel Jakub Dawidek <p...@freebsd.org> @@ -46,8 +46,6 @@ typedef struct pathname { #define NO_FOLLOW NOFOLLOW int lookupname(char *, enum uio_seg, enum symfollow, vnode_t **, vnode_t **); -int lookupnameat(char *, enum uio_seg, enum symfollow, vnode_t **, vnode_t **, - vnode_t *); #endif /* _KERNEL */