diff options
author | peter <peter@FreeBSD.org> | 1998-05-31 18:02:56 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 1998-05-31 18:02:56 +0000 |
commit | 35835ef239d8de7f44a973508f47a49a454e1723 (patch) | |
tree | 26f959c53e214093c05f7bf676a6b1ad668d435f /sys/nfsserver/nfs_srvsock.c | |
parent | 7f449d869996945e80ce542e76e8c3060430aecb (diff) | |
download | FreeBSD-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.c | 5 |
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) |