svn commit: r189631 - head/sys/kern
John Baldwin
jhb at FreeBSD.org
Tue Mar 10 10:00:30 PDT 2009
Author: jhb
Date: Tue Mar 10 17:00:28 2009
New Revision: 189631
URL: http://svn.freebsd.org/changeset/base/189631
Log:
- Remove a recently added comment from kernel_sysctlbyname() that isn't
needed.
- Move the release of the sysctl sx lock after the vsunlock() in
userland_sysctl() to restore the original memlock behavior of
minimizing the amount of memory wired to handle sysctl requests.
MFC after: 1 week
Modified:
head/sys/kern/kern_sysctl.c
Modified: head/sys/kern/kern_sysctl.c
==============================================================================
--- head/sys/kern/kern_sysctl.c Tue Mar 10 16:42:49 2009 (r189630)
+++ head/sys/kern/kern_sysctl.c Tue Mar 10 17:00:28 2009 (r189631)
@@ -1200,14 +1200,6 @@ kernel_sysctlbyname(struct thread *td, c
oid[1] = 3; /* name2oid */
oidlen = sizeof(oid);
- /*
- * XXX: Prone to a possible race condition between lookup and
- * execution? Maybe put locking around it?
- *
- * Userland is just as racy, so I think the current implementation
- * is fine.
- */
-
error = kernel_sysctl(td, oid, 2, oid, &oidlen,
(void *)name, strlen(name), &plen, flags);
if (error)
@@ -1520,10 +1512,10 @@ userland_sysctl(struct thread *td, int *
}
CURVNET_RESTORE();
- SYSCTL_XUNLOCK();
if (req.lock == REQ_WIRED && req.validlen > 0)
vsunlock(req.oldptr, req.validlen);
+ SYSCTL_XUNLOCK();
if (error && error != ENOMEM)
return (error);
More information about the svn-src-all
mailing list