From e0cdcbf68ab1dc1cc1af874cd84579d89a3e3747 Mon Sep 17 00:00:00 2001 From: Amar Tumballi Date: Fri, 8 Oct 2010 10:17:55 +0000 Subject: rpc-clnt: do rpc_transport_destroy() in rpc_clnt_destroy() handles the case of peer detach properly Signed-off-by: Amar Tumballi Signed-off-by: Vijay Bellur BUG: 875 (Implement a new protocol to provide proper backward/forward compatibility) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=875 --- rpc/rpc-lib/src/rpc-clnt.c | 4 ++-- rpc/rpc-lib/src/rpc-transport.h | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) (limited to 'rpc') diff --git a/rpc/rpc-lib/src/rpc-clnt.c b/rpc/rpc-lib/src/rpc-clnt.c index fa3bc81ffe8..8cf7f7444b0 100644 --- a/rpc/rpc-lib/src/rpc-clnt.c +++ b/rpc/rpc-lib/src/rpc-clnt.c @@ -823,7 +823,7 @@ rpc_clnt_notify (rpc_transport_t *trans, void *mydata, switch (event) { case RPC_TRANSPORT_DISCONNECT: { - rpc_clnt_connection_cleanup (&clnt->conn); + rpc_clnt_connection_cleanup (conn); pthread_mutex_lock (&conn->lock); { @@ -1474,7 +1474,7 @@ rpc_clnt_destroy (struct rpc_clnt *rpc) return; if (rpc->conn.trans) - rpc_transport_unref (rpc->conn.trans); + rpc_transport_destroy (rpc->conn.trans); rpc_clnt_connection_cleanup (&rpc->conn); rpc_clnt_reconnect_cleanup (&rpc->conn); diff --git a/rpc/rpc-lib/src/rpc-transport.h b/rpc/rpc-lib/src/rpc-transport.h index 560eae45314..c5e7755ff8e 100644 --- a/rpc/rpc-lib/src/rpc-transport.h +++ b/rpc/rpc-lib/src/rpc-transport.h @@ -246,6 +246,9 @@ rpc_transport_connect (rpc_transport_t *this, int port); int32_t rpc_transport_disconnect (rpc_transport_t *this); +int32_t +rpc_transport_destroy (rpc_transport_t *this); + int32_t rpc_transport_notify (rpc_transport_t *this, rpc_transport_event_t event, void *data, ...); -- cgit