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