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 <[email protected]>
@@ -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 <[email protected]>
@@ -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 */