diff options
author | Rick Macklem <rmacklem@FreeBSD.org> | 2011-11-03 14:38:03 +0000 |
---|---|---|
committer | Rick Macklem <rmacklem@FreeBSD.org> | 2011-11-03 14:38:03 +0000 |
commit | 2ba476324ba66f6e028b8bd10d5e7bd8a98777ba (patch) | |
tree | a05e8abe39c8e8d0962d9cb8f9391070f3c474f8 /sys/rpc | |
parent | 2b10b1f8722cfe96b9370ab4118731593f27be32 (diff) | |
download | src-test2-2ba476324ba66f6e028b8bd10d5e7bd8a98777ba.tar.gz src-test2-2ba476324ba66f6e028b8bd10d5e7bd8a98777ba.zip |
Notes
Diffstat (limited to 'sys/rpc')
-rw-r--r-- | sys/rpc/clnt_dg.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/rpc/clnt_dg.c b/sys/rpc/clnt_dg.c index 8a69bf4e5b19..c86b18a904d0 100644 --- a/sys/rpc/clnt_dg.c +++ b/sys/rpc/clnt_dg.c @@ -1001,12 +1001,12 @@ clnt_dg_destroy(CLIENT *cl) cs = cu->cu_socket->so_rcv.sb_upcallarg; clnt_dg_close(cl); + SOCKBUF_LOCK(&cu->cu_socket->so_rcv); mtx_lock(&cs->cs_lock); cs->cs_refs--; if (cs->cs_refs == 0) { mtx_unlock(&cs->cs_lock); - SOCKBUF_LOCK(&cu->cu_socket->so_rcv); soupcall_clear(cu->cu_socket, SO_RCV); clnt_dg_upcallsdone(cu->cu_socket, cs); SOCKBUF_UNLOCK(&cu->cu_socket->so_rcv); @@ -1015,6 +1015,7 @@ clnt_dg_destroy(CLIENT *cl) lastsocketref = TRUE; } else { mtx_unlock(&cs->cs_lock); + SOCKBUF_UNLOCK(&cu->cu_socket->so_rcv); lastsocketref = FALSE; } |