diff options
Diffstat (limited to 'sys/nfsserver/nfs_srvsock.c')
-rw-r--r-- | sys/nfsserver/nfs_srvsock.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/sys/nfsserver/nfs_srvsock.c b/sys/nfsserver/nfs_srvsock.c index 7091c82..29c50a0 100644 --- a/sys/nfsserver/nfs_srvsock.c +++ b/sys/nfsserver/nfs_srvsock.c @@ -714,10 +714,14 @@ nfsrv_send(struct socket *so, struct sockaddr *nam, struct mbuf *top) int error, soflags, flags; soflags = so->so_proto->pr_flags; - if ((soflags & PR_CONNREQUIRED) || (so->so_state & SS_ISCONNECTED)) + SOCK_LOCK(so); + if ((soflags & PR_CONNREQUIRED) || (so->so_state & SS_ISCONNECTED)) { + SOCK_UNLOCK(so); sendnam = (struct sockaddr *)0; - else + } else { + SOCK_UNLOCK(so); sendnam = nam; + } if (so->so_type == SOCK_SEQPACKET) flags = MSG_EOR; else |