summaryrefslogtreecommitdiffstats
path: root/sys/nfsserver/nfs_srvsock.c
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>1998-05-31 18:02:56 +0000
committerpeter <peter@FreeBSD.org>1998-05-31 18:02:56 +0000
commit35835ef239d8de7f44a973508f47a49a454e1723 (patch)
tree26f959c53e214093c05f7bf676a6b1ad668d435f /sys/nfsserver/nfs_srvsock.c
parent7f449d869996945e80ce542e76e8c3060430aecb (diff)
downloadFreeBSD-src-35835ef239d8de7f44a973508f47a49a454e1723.zip
FreeBSD-src-35835ef239d8de7f44a973508f47a49a454e1723.tar.gz
When we can't reconnect a socket, don't forget to unlock before retrying
or we can deadlock. Obtained from: NetBSD
Diffstat (limited to 'sys/nfsserver/nfs_srvsock.c')
-rw-r--r--sys/nfsserver/nfs_srvsock.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/nfsserver/nfs_srvsock.c b/sys/nfsserver/nfs_srvsock.c
index eadada0..c1671d5 100644
--- a/sys/nfsserver/nfs_srvsock.c
+++ b/sys/nfsserver/nfs_srvsock.c
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* @(#)nfs_socket.c 8.5 (Berkeley) 3/30/95
- * $Id: nfs_socket.c,v 1.34 1998/05/31 17:57:43 peter Exp $
+ * $Id: nfs_socket.c,v 1.35 1998/05/31 18:00:46 peter Exp $
*/
/*
@@ -640,6 +640,9 @@ errout:
error = nfs_reconnect(rep);
if (!error)
goto tryagain;
+ else
+ nfs_sndunlock(&rep->r_nmp->nm_flag,
+ &rep->r_nmp->nm_state);
}
} else {
if ((so = rep->r_nmp->nm_so) == NULL)
OpenPOWER on IntegriCloud