Module Name: src
Committed By: dholland
Date: Mon Apr 11 02:17:28 UTC 2011
Modified Files:
src/sys/kern: vfs_lookup.c
Log Message:
description:
Remove state->lookup_alldone. Don't need it any more; it's set
precisely when succeeding with a null result vnode and it now works to
just check for that case.
(also, when "error" is already 0 we don't need to assign another 0 to
it, even as a precaution.)
To generate a diff of this commit:
cvs rdiff -u -r1.161 -r1.162 src/sys/kern/vfs_lookup.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_lookup.c
diff -u src/sys/kern/vfs_lookup.c:1.161 src/sys/kern/vfs_lookup.c:1.162
--- src/sys/kern/vfs_lookup.c:1.161 Mon Apr 11 02:17:14 2011
+++ src/sys/kern/vfs_lookup.c Mon Apr 11 02:17:28 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: vfs_lookup.c,v 1.161 2011/04/11 02:17:14 dholland Exp $ */
+/* $NetBSD: vfs_lookup.c,v 1.162 2011/04/11 02:17:28 dholland Exp $ */
/*
* Copyright (c) 1982, 1986, 1989, 1993
@@ -37,7 +37,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vfs_lookup.c,v 1.161 2011/04/11 02:17:14 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vfs_lookup.c,v 1.162 2011/04/11 02:17:28 dholland Exp $");
#include "opt_magiclinks.h"
@@ -403,9 +403,6 @@
struct nameidata *ndp;
struct componentname *cnp;
- /* used by the pieces of lookup */
- int lookup_alldone;
-
int docache; /* == 0 do not cache last component */
int rdonly; /* lookup read-only flag bit */
int slashes;
@@ -424,8 +421,6 @@
state->cnp = &ndp->ni_cnd;
KASSERT((state->cnp->cn_flags & INRELOOKUP) == 0);
- state->lookup_alldone = 0;
-
state->docache = 0;
state->rdonly = 0;
state->slashes = 0;
@@ -971,7 +966,6 @@
* doesn't currently exist, leaving a pointer to the
* (possibly locked) directory vnode as searchdir.
*/
- state->lookup_alldone = 1;
*foundobj_ret = NULL;
return (0);
}
@@ -1072,8 +1066,6 @@
* (currently, this may consume more than one)
*/
- state->lookup_alldone = 0;
-
ndp->ni_dvp = NULL;
cnp->cn_flags &= ~ISSYMLINK;
@@ -1145,10 +1137,14 @@
KASSERT(ndp->ni_dvp == NULL);
ndp->ni_vp = foundobj;
- // XXX ought to be able to avoid this case too
- if (state->lookup_alldone) {
- error = 0;
- /* break out of main loop */
+ if (foundobj == NULL) {
+ /*
+ * Success with no object returned means we're
+ * creating something and it isn't already
+ * there. Break out of the main loop now so
+ * the code below doesn't have to test for
+ * foundobj == NULL.
+ */
break;
}
@@ -1435,7 +1431,6 @@
KASSERT(cnp == &ndp->ni_cnd);
cnp->cn_nameptr = ndp->ni_pnbuf;
- state->lookup_alldone = 0;
state->docache = 1;
state->rdonly = cnp->cn_flags & RDONLY;
ndp->ni_dvp = NULL;
@@ -1470,9 +1465,8 @@
goto bad;
}
ndp->ni_vp = foundobj;
- // XXX ought to be able to avoid this case too
- if (state->lookup_alldone) {
- /* this should NOT be "goto terminal;" */
+
+ if (foundobj == NULL) {
return 0;
}