cvs commit: src/sys/kern vfs_cache.c vfs_default.c
Matthew Dillon
dillon at crater.dragonflybsd.org
Fri Jan 18 11:14:01 PST 2008
dillon 2008/01/18 11:13:16 PST
DragonFly src repository
Modified files:
sys/kern vfs_cache.c vfs_default.c
Log:
Fix an issue with cache_rename(). This procedure previously copied a
namecache entry to a new one and then invalidated the old one, operating
under the idea that the namespace structures should remain consistent.
However, the curret, root, and jail directories for a process are stored as
pointers to namecache structures and renaming a directory resulted in
the current, root, or jail directory for related processes becoming invalid.
Changes to the namecache structure over the years (separately allocated
nc_name, rehash support, etc) now make it possible to implement the
cache_rename() by physically renaming the namecache structure instead
of copying it, allowing process references to be retained.
NOTE: There may still be a race against nlookup's.
Reported-by: Vincent Stemen <vs1 at crel.us>
Testing-by: Vincent Stemen <vs1 at crel.us>
Revision Changes Path
1.86 +20 -33 src/sys/kern/vfs_cache.c
1.52 +2 -6 src/sys/kern/vfs_default.c
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_cache.c.diff?r1=1.85&r2=1.86&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_default.c.diff?r1=1.51&r2=1.52&f=u
More information about the Commits
mailing list