[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