cvs commit: src/sys/conf src/sys/kern src/sys/sys src/sys/emulation/svr4

Matthew Dillon dillon at crater.dragonflybsd.org
Mon Sep 27 17:26:20 PDT 2004


dillon      2004/09/27 17:25:34 PDT

DragonFly src repository

  Modified files:
    sys/conf             files 
    sys/kern             init_main.c kern_descrip.c vfs_cache.c 
                         vfs_default.c vfs_lookup.c vfs_syscalls.c 
                         vfs_vopops.c 
    sys/sys              namecache.h namei.h vfsops.h 
    sys/emulation/svr4   svr4_misc.c 
  Added files:
    sys/kern             vfs_nlookup.c 
    sys/sys              nlookup.h 
  Log:
  VFS messaging/interfacing work stage 6/99.  Populate and maintain the
  namecache pointers previously attached to struct filedesc, giving the new
  lookup code a base from which to work.
  
  Implement the new lookup API (it is not yet being used by anything) and
  augment the namecache API to handle the new functions, in particular
  adding cache_setvp() to resolve an unresolved namecache entry into a
  positive or negative hit and set various flags.  Note that we do not yet
  cache symlink data but we could very easily.
  
  The new API is greatly simplified.  Basically nlookups need only returned
  a locked namecache pointer (guarenteeing namespace atomicy).  Related
  vnodes are not locked.  Both the leaf and governing directory vnodes can
  be extracted from the returned namecache pointer.  namecache pointers may
  also represent negative hits, which means that their namespace locking
  feature serves to reserve a filename that has not yet been created (e.g.
  open+create, rename).
  
  The kernel is still using the old API as of this commit.  This commit is
  primarily introducing the management infrastructure required to actually
  start writing code to use the new API.
  
  VOP_RESOLVE() has been added, along with a default function which falls back
  to VOP_LOOKUP()/VOP_CACHEDLOOKUP().  This VOP function is not yet being used
  as of this commit.  This VOP will be responsible for taking an unresolved
  but locked namecache structure (hence the namespace is locked), and actually
  does the directory lookup.  But unlike the far more complex
  VOP_LOOKUP()/VOP_CACHEDLOOKUP() API the VOP_RESOLVE() API only needs to
  attach a vnode (or NULL if the entry does not exist) to the passed-in
  namecache structure.  It is likely that timeouts, e.g. for NFS, will also
  be attached via this API.
  
  This commit does not implement any of the cache-coherency infrastructure
  but keeps this future requirement in mind in its design.
  
  Revision  Changes    Path
  1.76      +1 -0      src/sys/conf/files
  1.37      +4 -1      src/sys/kern/init_main.c
  1.28      +24 -7     src/sys/kern/kern_descrip.c
  1.28      +286 -69   src/sys/kern/vfs_cache.c
  1.14      +56 -0     src/sys/kern/vfs_default.c
  1.16      +1 -1      src/sys/kern/vfs_lookup.c
  1.39      +13 -1     src/sys/kern/vfs_syscalls.c
  1.7       +32 -0     src/sys/kern/vfs_vopops.c
  1.9       +12 -4     src/sys/sys/namecache.h
  1.14      +2 -0      src/sys/sys/namei.h
  1.6       +11 -0     src/sys/sys/vfsops.h
  1.23      +4 -1      src/sys/emulation/svr4/svr4_misc.c


http://www.dragonflybsd.org/cvsweb/src/sys/conf/files.diff?r1=1.75&r2=1.76&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/init_main.c.diff?r1=1.36&r2=1.37&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/kern_descrip.c.diff?r1=1.27&r2=1.28&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_cache.c.diff?r1=1.27&r2=1.28&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_default.c.diff?r1=1.13&r2=1.14&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_lookup.c.diff?r1=1.15&r2=1.16&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_syscalls.c.diff?r1=1.38&r2=1.39&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_vopops.c.diff?r1=1.6&r2=1.7&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/namecache.h.diff?r1=1.8&r2=1.9&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/namei.h.diff?r1=1.13&r2=1.14&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/vfsops.h.diff?r1=1.5&r2=1.6&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/emulation/svr4/svr4_misc.c.diff?r1=1.22&r2=1.23&f=u





More information about the Commits mailing list