cvs commit: src/sys/kern vfs_subr.c

Jeff Roberson jroberson at
Sat Oct 4 17:51:18 PDT 2003

This is probably the last of it for a little while.  I have some other
locked bits in my tree, but I'm not quite ready to commit them yet.  What
I've been working on is locking the lists that don't use v_usecount to
protect them.  This includes the free list, spec hash, syncer list, mnt
vnode list, and the name cache.

The actual datastructures are all protected, but they almost all have
races with vnode recycling and forced unmounts.

On Sat, 4 Oct 2003, Jeff Roberson wrote:

> jeff        2003/10/04 17:35:41 PDT
>   FreeBSD src repository
>   Modified files:
>     sys/kern             vfs_subr.c
>   Log:
>    - Solve a LOR with the sync_mtx by using the VI_ONWORKLST flag to determine
>      whether or not the sync failed.  This could potentially get set between
>      the time that we VOP_UNLOCK and VI_LOCK() but the race would harmelssly
>      lead to the sync being delayed by an extra 30 seconds.  If we do not move
>      the vnode it could cause an endless loop if it continues to fail to sync.
>    - Use vhold and vdrop to stop the vnode from changing identities while we
>      have it unlocked.  Other internal vfs lists are likely to follow this
>      scheme.
>   Revision  Changes    Path
>   1.462     +12 -6     src/sys/kern/vfs_subr.c

More information about the cvs-src mailing list