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 */
 

Reply via email to