Author: kan
Date: Wed Apr 15 16:36:13 2009
New Revision: 191107
URL: http://svn.freebsd.org/changeset/base/191107

Log:
  MFC r191081-191082:
  
  Properly handle negative cache enries found through dotdot lookups.
  
  Submitted by: tegge
  Approved by:  re(kib)
  
  _M   sys
  M    sys/kern/vfs_cache.c
  _M   sys/dev/cxgb
  _M   sys/dev/ath/ath_hal
  _M   sys/contrib/pf

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

Modified: releng/7.2/sys/kern/vfs_cache.c
==============================================================================
--- releng/7.2/sys/kern/vfs_cache.c     Wed Apr 15 16:05:25 2009        
(r191106)
+++ releng/7.2/sys/kern/vfs_cache.c     Wed Apr 15 16:36:13 2009        
(r191107)
@@ -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++;
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to