First vfs megapatch (not for the faint of heart)

看板DFBSD_kernel作者時間21年前 (2004/10/09 08:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/10 (看更多)
!!! All normal users not involved with testing the VFS code should be using kernels based on the DragonFly_Stable tag and not mess with this stuff !!! Here's the first mega patch, relative to HEAD. This is not for the faint of heart. fetch http://leaf.dragonflybsd.org/~dillon/vfsx08.patch This patch: * Gets rid of the vnode interlock. The lockmgr interlock remains. * Introduced VX locks, which are mandatory vp->v_lock based locks. * Rewrites the locking semantics for deactivation and reclamation. (A ref'd VX lock'd vnode is now required for vgone(), VOP_INACTIVE, and VOP_RECLAIM). New guarentees emplaced with regard to vnode ripouts. * Recodes the mountlist scanning routines to close timing races. * Recodes getnewvnode to close timing races (it now returns a VX locked and refd vnode rather then a refd but unlocked vnode). * Recodes VOP_REVOKE- a locked vnode is now mandatory. * Recodes all VFS inode hash routines to close timing holes. * Removes cache_leaf_test() - vnodes representing intermediate directories are now held so the leaf test should no longer be necessary. * Splits the over-large vfs_subr.c into three additional source files, broken down by major function (locking, mount related, filesystem syncer). Known issues: * Possible vnode/namecache deadlocks. * The VOP_CLOSE work is not finished (I am making a locked vnode mandatory but not all VOP_CLOSE calls pass a locked vnode yet). * While most filesystems now use vp->v_lock, I haven't done a final pass to make vp->v_lock mandatory and to clean up the few remaining inode based locks (nwfs I think and other obscure filesystems). * NullFS gets confused when you hit a mount point in the underlying filesystem. * NFS not well tested. -Matt Matthew Dillon <dillon@backplane.com>
文章代碼(AID): #11Pp6400 (DFBSD_kernel)
討論串 (同標題文章)
文章代碼(AID): #11Pp6400 (DFBSD_kernel)