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-src
mailing list