cvs commit: src/sys/kern vfs_cache.c

David Schultz das at FreeBSD.org
Tue Mar 29 18:59:33 PST 2005


das         2005-03-30 02:59:32 UTC

  FreeBSD src repository

  Modified files:
    sys/kern             vfs_cache.c 
  Log:
  Merge kern___cwd() and vn_fullpath(), which were virtually identical,
  except for places where people forget to update one of them.  We now
  collect only one set of stats for both of these routines.  Other
  changes in this commit include:
  
  - Start acquiring Giant again in vn_fullpath(), since it is required
    when crossing a mount point.
  
  - Expand the scope of the cache lock to avoid dropping it and
    picking it up again for every pathname component.  This also
    makes it trivial to avoid races in stats collection.
  
  - Assert that nc_dvp == v_dd for directories instead of returning
    an error to userland when this is not true.  AFAIK, it should
    always be true when v_dd is non-null.
  
  - For vn_fullpath(), handle the first (non-directory) vnode
    separately.
  
  Glanced at by:  jeff, phk
  
  Revision  Changes    Path
  1.97      +89 -132   src/sys/kern/vfs_cache.c


More information about the cvs-all mailing list