aboutsummaryrefslogtreecommitdiff
path: root/sys/kern/vfs_cache.c
diff options
context:
space:
mode:
authorAlexander Kabaev <kan@FreeBSD.org>2009-04-14 23:56:48 +0000
committerAlexander Kabaev <kan@FreeBSD.org>2009-04-14 23:56:48 +0000
commit9cf67722113c7234f16648e81d364cacbf96e4d3 (patch)
treeb0b5aab86814fb84115d4f207b4aefe2e61260d5 /sys/kern/vfs_cache.c
parenteed8a9edba9b575407339b17e8770e76bc455d15 (diff)
downloadsrc-9cf67722113c7234f16648e81d364cacbf96e4d3.tar.gz
src-9cf67722113c7234f16648e81d364cacbf96e4d3.zip
Redo previous change using simpler patch that happens to be also
more correct. Submitted by: tor
Notes
Notes: svn path=/head/; revision=191082
Diffstat (limited to 'sys/kern/vfs_cache.c')
-rw-r--r--sys/kern/vfs_cache.c12
1 files changed, 3 insertions, 9 deletions
diff --git a/sys/kern/vfs_cache.c b/sys/kern/vfs_cache.c
index f00307cc7b95..a541d76743d1 100644
--- a/sys/kern/vfs_cache.c
+++ b/sys/kern/vfs_cache.c
@@ -423,15 +423,8 @@ retry_wlocked:
*vpp = dvp->v_cache_dd->nc_dvp;
/* Return failure if negative entry was found. */
if (*vpp == NULL) {
- numneghits++;
- nchstats.ncs_neghits++;
- SDT_PROBE(vfs, namecache, lookup, hit_negative,
- dvp, "..", 0, 0, 0);
- if (wlocked)
- CACHE_WUNLOCK();
- else
- CACHE_RUNLOCK();
- return (ENOENT);
+ ncp = dvp->v_cache_dd;
+ goto negative_success;
}
CTR3(KTR_VFS, "cache_lookup(%p, %s) found %p via ..",
dvp, cnp->cn_nameptr, *vpp);
@@ -486,6 +479,7 @@ retry_wlocked:
goto success;
}
+negative_success:
/* We found a negative match, and want to create it, so purge */
if (cnp->cn_nameiop == CREATE) {
numnegzaps++;