commit 7c78a0362fcd3e0749330f11d0fdecb62131a6a3 Author: Steve Dickson Date: Thu Nov 20 08:53:52 2008 -0500 The clnt_fd_lock mutex lock was not being released during an error path in clnt_dg_call. Signed-off-by: Steve Dickson diff --git a/src/clnt_dg.c b/src/clnt_dg.c index da01c5b..9a574eb 100644 --- a/src/clnt_dg.c +++ b/src/clnt_dg.c @@ -402,6 +402,7 @@ get_reply: fd.fd = cu->cu_fd; fd.events = POLLIN; + fd.revents = 0; while (total_time > 0) { tv = total_time < nextsend_time ? total_time : nextsend_time; switch (poll(&fd, 1, tv)) { @@ -455,6 +456,7 @@ get_reply: { e = (struct sock_extended_err *) CMSG_DATA(cmsg); cu->cu_error.re_errno = e->ee_errno; + release_fd_lock(cu->cu_fd, mask); return (cu->cu_error.re_status = RPC_CANTRECV); } }