Date: Sat, 4 Oct 2003 20:51:15 -0400 (EDT) From: Jeff Roberson <jroberson@chesapeake.net> To: Jeff Roberson <jeff@FreeBSD.org> Cc: cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/kern vfs_subr.c Message-ID: <20031004204825.J99666-100000@mail.chesapeake.net> In-Reply-To: <200310050035.h950ZfWK050548@repoman.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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 >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20031004204825.J99666-100000>