[Cluster-devel] [DLM PATCH 3/6] DLM: Make consistent error path through tcp_create_listen_sock

Bob Peterson rpeterso at redhat.com
Wed Feb 10 18:55:29 UTC 2016


Function tcp_create_listen_sock has two error paths. One of them
was setting con->sock to NULL. The other was not. This patch changes
it to be consistent and do the same thing for both error paths.

Signed-off-by: Bob Peterson <rpeterso at redhat.com>
---
 fs/dlm/lowcomms.c | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/fs/dlm/lowcomms.c b/fs/dlm/lowcomms.c
index e740326..3b780f0 100644
--- a/fs/dlm/lowcomms.c
+++ b/fs/dlm/lowcomms.c
@@ -1199,10 +1199,7 @@ static struct socket *tcp_create_listen_sock(struct connection *con,
 	result = sock->ops->bind(sock, (struct sockaddr *) saddr, addr_len);
 	if (result < 0) {
 		log_print("Can't bind to port %d", dlm_config.ci_tcp_port);
-		sock_release(sock);
-		sock = NULL;
-		con->sock = NULL;
-		goto create_out;
+		goto out_err;
 	}
 	result = kernel_setsockopt(sock, SOL_SOCKET, SO_KEEPALIVE,
 				 (char *)&one, sizeof(one));
@@ -1213,13 +1210,18 @@ static struct socket *tcp_create_listen_sock(struct connection *con,
 	result = sock->ops->listen(sock, 5);
 	if (result < 0) {
 		log_print("Can't listen on port %d", dlm_config.ci_tcp_port);
-		sock_release(sock);
-		sock = NULL;
-		goto create_out;
+		goto out_err;
 	}
 
 create_out:
 	return sock;
+
+out_err:
+	sock_release(sock);
+	sock = NULL;
+	con->sock = NULL;
+
+	goto create_out;
 }
 
 /* Get local addresses */
-- 
2.5.0




More information about the Cluster-devel mailing list