summaryrefslogtreecommitdiffstats
path: root/sys/kern/vfs_export.c
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>1997-09-24 07:46:54 +0000
committerphk <phk@FreeBSD.org>1997-09-24 07:46:54 +0000
commit4d1dd5bc330562db34cd9491a9bfdec784616c69 (patch)
tree37a9e7ee83b8079627616b23192fa27bd2156022 /sys/kern/vfs_export.c
parentedf92c1ecfc9f94e6fe4f09e373b8441d5d6bf7f (diff)
downloadFreeBSD-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.c12
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) {
OpenPOWER on IntegriCloud