Author: mjg
Date: Wed Aug 19 15:08:14 2020
New Revision: 364395
URL: https://svnweb.freebsd.org/changeset/base/364395

Log:
  cache: when adding an already existing entry assert on a complete match

Modified:
  head/sys/kern/vfs_cache.c

Modified: head/sys/kern/vfs_cache.c
==============================================================================
--- head/sys/kern/vfs_cache.c   Wed Aug 19 15:07:28 2020        (r364394)
+++ head/sys/kern/vfs_cache.c   Wed Aug 19 15:08:14 2020        (r364395)
@@ -1957,6 +1957,15 @@ cache_enter_time(struct vnode *dvp, struct vnode *vp, 
                if (n2->nc_dvp == dvp &&
                    n2->nc_nlen == cnp->cn_namelen &&
                    !bcmp(n2->nc_name, cnp->cn_nameptr, n2->nc_nlen)) {
+                       MPASS(cache_ncp_canuse(n2));
+                       if ((n2->nc_flag & NCF_NEGATIVE) != 0)
+                               KASSERT(vp == NULL,
+                                   ("%s: found entry pointing to a different 
vnode (%p != %p)",
+                                   __func__, NULL, vp));
+                       else
+                               KASSERT(n2->nc_vp == vp,
+                                   ("%s: found entry pointing to a different 
vnode (%p != %p)",
+                                   __func__, n2->nc_vp, vp));
                        if (tsp != NULL) {
                                KASSERT((n2->nc_flag & NCF_TS) != 0,
                                    ("no NCF_TS"));
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to