svn commit: r191106 - in stable/7/sys: . contrib/pf dev/ath/ath_hal dev/cxgb kern

Alexander Kabaev kan at FreeBSD.org
Wed Apr 15 09:05:27 PDT 2009


Author: kan
Date: Wed Apr 15 16:05:25 2009
New Revision: 191106
URL: http://svn.freebsd.org/changeset/base/191106

Log:
  MFC r191081-191082:
  
  Properly handle negative cache enries found through dotdot lookups.
  
  Submitted by:	tor
  Approved by:	re(kib)

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/dev/ath/ath_hal/   (props changed)
  stable/7/sys/dev/cxgb/   (props changed)
  stable/7/sys/kern/vfs_cache.c

Modified: stable/7/sys/kern/vfs_cache.c
==============================================================================
--- stable/7/sys/kern/vfs_cache.c	Wed Apr 15 15:02:37 2009	(r191105)
+++ stable/7/sys/kern/vfs_cache.c	Wed Apr 15 16:05:25 2009	(r191106)
@@ -370,6 +370,11 @@ retry:
 				*vpp = dvp->v_cache_dd->nc_vp;
 			else
 				*vpp = dvp->v_cache_dd->nc_dvp;
+			/* Return failure if negative entry was found. */
+			if (*vpp == NULL) {
+				ncp = dvp->v_cache_dd;
+				goto negative_success;
+			}
 			CTR3(KTR_VFS, "cache_lookup(%p, %s) found %p via ..",
 			    dvp, cnp->cn_nameptr, *vpp);
 			goto success;
@@ -416,6 +421,7 @@ retry:
 		goto success;
 	}
 
+negative_success:
 	/* We found a negative match, and want to create it, so purge */
 	if (cnp->cn_nameiop == CREATE) {
 		numnegzaps++;


More information about the svn-src-stable-7 mailing list