diff options
author | phk <phk@FreeBSD.org> | 1997-09-24 07:46:54 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 1997-09-24 07:46:54 +0000 |
commit | 4d1dd5bc330562db34cd9491a9bfdec784616c69 (patch) | |
tree | 37a9e7ee83b8079627616b23192fa27bd2156022 /sys/kern/vfs_export.c | |
parent | edf92c1ecfc9f94e6fe4f09e373b8441d5d6bf7f (diff) | |
download | FreeBSD-src-4d1dd5bc330562db34cd9491a9bfdec784616c69.zip FreeBSD-src-4d1dd5bc330562db34cd9491a9bfdec784616c69.tar.gz |
A couple of handles to tweak, more statistics.
Diffstat (limited to 'sys/kern/vfs_export.c')
-rw-r--r-- | sys/kern/vfs_export.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/sys/kern/vfs_export.c b/sys/kern/vfs_export.c index 810cc59..3f0a9da 100644 --- a/sys/kern/vfs_export.c +++ b/sys/kern/vfs_export.c @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)vfs_subr.c 8.31 (Berkeley) 5/26/95 - * $Id: vfs_subr.c,v 1.103 1997/09/14 02:49:06 peter Exp $ + * $Id: vfs_subr.c,v 1.104 1997/09/16 11:43:38 bde Exp $ */ /* @@ -95,6 +95,8 @@ int vttoif_tab[9] = { (bp)->b_vnbufs.le_next = NOLIST; \ } TAILQ_HEAD(freelst, vnode) vnode_free_list; /* vnode free list */ +static u_long wantfreevnodes = 0; +SYSCTL_INT(_debug, OID_AUTO, wantfreevnodes, CTLFLAG_RW, &wantfreevnodes, 0, ""); static u_long freevnodes = 0; SYSCTL_INT(_debug, OID_AUTO, freevnodes, CTLFLAG_RD, &freevnodes, 0, ""); @@ -350,7 +352,11 @@ getnewvnode(tag, mp, vops, vpp) simple_lock(&vnode_free_list_slock); - if (freevnodes >= desiredvnodes) { + if (wantfreevnodes && freevnodes < wantfreevnodes) { + vp = NULL; + } else if (freevnodes <= desiredvnodes) { + vp = NULL; + } else { TAILQ_FOREACH(vp, &vnode_free_list, v_freelist) { if (!simple_lock_try(&vp->v_interlock)) continue; @@ -369,8 +375,6 @@ getnewvnode(tag, mp, vops, vpp) break; } } - } else { - vp = NULL; } if (vp) { |