Author: mckusick Date: Mon Aug 31 05:25:13 2020 New Revision: 364983 URL: https://svnweb.freebsd.org/changeset/base/364983
Log: MFC of 364895 Comment on when and why pathnames are deleted from the name cache. Modified: stable/12/sys/kern/vfs_lookup.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/kern/vfs_lookup.c ============================================================================== --- stable/12/sys/kern/vfs_lookup.c Mon Aug 31 01:45:48 2020 (r364982) +++ stable/12/sys/kern/vfs_lookup.c Mon Aug 31 05:25:13 2020 (r364983) @@ -663,6 +663,16 @@ lookup(struct nameidata *ndp) wantparent = cnp->cn_flags & (LOCKPARENT | WANTPARENT); KASSERT(cnp->cn_nameiop == LOOKUP || wantparent, ("CREATE, DELETE, RENAME require LOCKPARENT or WANTPARENT.")); + /* + * When set to zero, docache causes the last component of the + * pathname to be deleted from the cache and the full lookup + * of the name to be done (via VOP_CACHEDLOOKUP()). Often + * filesystems need some pre-computed values that are made + * during the full lookup, for instance UFS sets dp->i_offset. + * + * The docache variable is set to zero when requested by the + * NOCACHE flag and for all modifying operations except CREATE. + */ docache = (cnp->cn_flags & NOCACHE) ^ NOCACHE; if (cnp->cn_nameiop == DELETE || (wantparent && cnp->cn_nameiop != CREATE && _______________________________________________ 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"