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