aboutsummaryrefslogtreecommitdiff
path: root/sys/netncp
diff options
context:
space:
mode:
authorDon Lewis <truckman@FreeBSD.org>2002-07-28 19:59:31 +0000
committerDon Lewis <truckman@FreeBSD.org>2002-07-28 19:59:31 +0000
commit5c38b6dbce8b0e199cc285982440e9459ad4ffa8 (patch)
tree6dda6f0898c9f15fca929e63e72b3882862e67e1 /sys/netncp
parentb44ba1a844ff3b351139591b8eeff6273e566a45 (diff)
downloadsrc-5c38b6dbce8b0e199cc285982440e9459ad4ffa8.tar.gz
src-5c38b6dbce8b0e199cc285982440e9459ad4ffa8.zip
Wire the sysctl output buffer before grabbing any locks to prevent
SYSCTL_OUT() from blocking while locks are held. This should only be done when it would be inconvenient to make a temporary copy of the data and defer calling SYSCTL_OUT() until after the locks are released.
Notes
Notes: svn path=/head/; revision=100831
Diffstat (limited to 'sys/netncp')
-rw-r--r--sys/netncp/ncp_conn.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/netncp/ncp_conn.c b/sys/netncp/ncp_conn.c
index 85f416302105..14b8d7b2d5bc 100644
--- a/sys/netncp/ncp_conn.c
+++ b/sys/netncp/ncp_conn.c
@@ -633,6 +633,7 @@ ncp_sysctl_connstat(SYSCTL_HANDLER_ARGS) {
/* struct ucred *cred = req->p->p_ucred;*/
error = 0;
+ sysctl_wire_old_buffer(req, 0);
ncp_conn_locklist(LK_SHARED, req->p);
error = SYSCTL_OUT(req, &ncp_conn_cnt, sizeof(ncp_conn_cnt));
SLIST_FOREACH(ncp, &conn_list, nc_next) {