cvs commit: src/sys/kern vfs_subr.c

Jeff Roberson jeff at FreeBSD.org
Sat Oct 4 22:35:43 PDT 2003


jeff        2003/10/04 22:35:42 PDT

  FreeBSD src repository

  Modified files:
    sys/kern             vfs_subr.c 
  Log:
   - Rename vcanrecycle() to vtryrecycle() to reflect its new role.
   - In vtryrecycle() try to vgonel the vnode if all of the previous checks
     passed.  We won't vgonel if someone has either acquired a hold or usecount
     or started the vgone process elsewhere.  This is because we may have been
     removed from the free list while we were inspecting the vnode for
     recycling.
   - The VI_TRYLOCK stops two threads from entering getnewvnode() and recycling
     the same vnode.  To further reduce the likelyhood of this event, requeue
     the vnode on the tail of the list prior to calling vtryrecycle().  We can
     not actually remove the vnode from the list until we know that it's
     going to be recycled because other interlock holders may see the VI_FREE
     flag and try to remove it from the free list.
   - Kill a bogus XXX comment.  If XLOCK is set we shouldn't wait for it
     regardless of MNT_WAIT because the vnode does not actually belong to
     this filesystem.
  
  Revision  Changes    Path
  1.464     +32 -26    src/sys/kern/vfs_subr.c


More information about the cvs-src mailing list