From owner-cvs-sys Sun Aug 31 00:38:05 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.7/8.8.7) id AAA26745 for cvs-sys-outgoing; Sun, 31 Aug 1997 00:38:05 -0700 (PDT) Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (8.8.7/8.8.7) with ESMTP id AAA26626; Sun, 31 Aug 1997 00:34:09 -0700 (PDT) From: Poul-Henning Kamp Received: (from phk@localhost) by freefall.freebsd.org (8.8.6/8.8.5) id AAA08678; Sun, 31 Aug 1997 00:32:43 -0700 (PDT) Date: Sun, 31 Aug 1997 00:32:43 -0700 (PDT) Message-Id: <199708310732.AAA08678@freefall.freebsd.org> To: cvs-committers@FreeBSD.ORG, cvs-all@FreeBSD.ORG, cvs-sys@FreeBSD.ORG Subject: cvs commit: src/sys/kern vfs_cache.c vfs_subr.c src/sys/sys vnode.h src/sys/ufs/lfs lfs_segment.c src/sys/vm vm_swap.c Sender: owner-cvs-sys@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk phk 1997/08/31 00:32:42 PDT Modified files: sys/kern vfs_cache.c vfs_subr.c sys/sys vnode.h sys/ufs/lfs lfs_segment.c sys/vm vm_swap.c Log: Change the 0xdeadb hack to a flag called VDOOMED. Introduce VFREE which indicates that vnode is on freelist. Rename vholdrele() to vdrop(). Create vfree() and vbusy() to add/delete vnode from freelist. Add vfree()/vbusy() to keep (v_holdcnt != 0 || v_usecount != 0) vnodes off the freelist. Generalize vhold()/v_holdcnt to mean "do not recycle". Fix reassignbuf()s lack of use of vhold(). Use vhold() instead of checking v_cache_src list. Remove vtouch(), the vnodes are always vget'ed soon enough after for it to have any measuable effect. Add sysctl debug.freevnodes to keep track of things. Move cache_purge() up in getnewvnodes to avoid race. Decrement v_usecount after VOP_INACTIVE(), put a vhold() on it during VOP_INACTIVE() Unmacroize vhold()/vdrop() Print out VDOOMED and VFREE flags (XXX: should use %b) Reviewed by: dyson Revision Changes Path 1.28 +8 -7 src/sys/kern/vfs_cache.c 1.96 +66 -55 src/sys/kern/vfs_subr.c 1.47 +19 -27 src/sys/sys/vnode.h 1.24 +2 -2 src/sys/ufs/lfs/lfs_segment.c 1.44 +2 -2 src/sys/vm/vm_swap.c