On Wed, Feb 10, 2016 at 7:55 PM, Bob Peterson <rpete...@redhat.com> wrote:
> 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 <rpete...@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;

Consolidating the error paths makes sense, but con->sock shouldn't be
set here at all; the caller does that in add_sock().

Thanks,
Andreas

Reply via email to