Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/kern restore functionality to decrease kern.maxvnodes which



details:   https://anonhg.NetBSD.org/src/rev/67f71e144344
branches:  trunk
changeset: 556548:67f71e144344
user:      yamt <yamt%NetBSD.org@localhost>
date:      Sat Dec 20 07:26:27 2003 +0000

description:
restore functionality to decrease kern.maxvnodes which
has been backed out during sysctl rework.

diffstat:

 sys/kern/init_sysctl.c |  14 ++++++++++----
 1 files changed, 10 insertions(+), 4 deletions(-)

diffs (36 lines):

diff -r 7f7e1732abcb -r 67f71e144344 sys/kern/init_sysctl.c
--- a/sys/kern/init_sysctl.c    Sat Dec 20 07:10:00 2003 +0000
+++ b/sys/kern/init_sysctl.c    Sat Dec 20 07:26:27 2003 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: init_sysctl.c,v 1.11 2003/12/12 23:21:44 simonb Exp $ */
+/*     $NetBSD: init_sysctl.c,v 1.12 2003/12/20 07:26:27 yamt Exp $ */
 
 /*-
  * Copyright (c) 2003 The NetBSD Foundation, Inc.
@@ -727,7 +727,7 @@
 static int
 sysctl_kern_maxvnodes(SYSCTLFN_ARGS)
 {
-       int error, new_vnodes;
+       int error, new_vnodes, old_vnodes;
        struct sysctlnode node;
 
        new_vnodes = desiredvnodes;
@@ -737,9 +737,15 @@
        if (error || newp == NULL)
                return (error);
 
-       if (new_vnodes < desiredvnodes)
-               return (EINVAL);
+       old_vnodes = desiredvnodes;
        desiredvnodes = new_vnodes;
+       if (new_vnodes < old_vnodes) {
+               error = vfs_drainvnodes(new_vnodes, l->l_proc);
+               if (error) {
+                       desiredvnodes = old_vnodes;
+                       return (error);
+               }
+       }
        vfs_reinit();
        nchreinit();
 



Home | Main Index | Thread Index | Old Index