cvs commit: src/sys/kern vfs_mount.c

看板DFBSD_commit作者時間21年前 (2005/02/09 11:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
dillon 2005/02/08 18:51:04 PST DragonFly src repository Modified files: sys/kern vfs_mount.c Log: Fix a case that can prevent the vnlru_proc vnode recycler from operating. The vnode recycler is not allowed to recycle 'internal' directory nodes in the namecache topology. i.e. if the path A/B/C/D is cached, then the recycler is not allowed to remove A, B, or C. The recycler checks this condition by checking the vnode's v_holdcnt. The recycler also tries to recycle vnodes with little or no cached data rather then the vnodes with a great deal of cached data. However, the buffer cache now uses v_holdcnt as well. If the buffer cache is large enough and maxvnodes is small enough the recycler can wind up not finding any vnodes to recycle. The fix is clean out the buffers with the candidate vnode and then make a final v_holdcnt check. Reported-by: Gary Allan <dragonfly@gallan.plus.com> Revision Changes Path 1.7 +57 -4 src/sys/kern/vfs_mount.c http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_mount.c.diff?r1=1.6&r2=1.7&f=u
文章代碼(AID): #122Npm00 (DFBSD_commit)
文章代碼(AID): #122Npm00 (DFBSD_commit)