[Cluster-devel] [PATCH] DLM: Telnet to port 21064 can stop all lockspaces

Steven Whitehouse swhiteho at redhat.com
Wed Jun 27 13:29:22 UTC 2007


Hi,

Now applied to the -nmw git tree. Thanks,

Steve.

On Wed, 2007-06-27 at 11:36 +0100, Patrick Caulfield wrote:
> This patch fixes Red Hat bz#245892
> 
> Opening a tcp connection from a cluster member to another cluster member
> targeting the dlm port it is enough to stop every dlm operation in the cluster.
> This means that GFS and rgmanager will hang.
> 
> 
> Signed-Off-By: Patrick Caulfield <pcaulfie at redhat.com>
> plain text document attachment (lowcomms-dos-patch.upstream)
> diff --git a/fs/dlm/lowcomms.c b/fs/dlm/lowcomms.c
> index fc0bff7..73d44f5 100644
> --- a/fs/dlm/lowcomms.c
> +++ b/fs/dlm/lowcomms.c
> @@ -720,11 +720,17 @@ static int tcp_accept_from_sock(struct connection *con)
>  			INIT_WORK(&othercon->rwork, process_recv_sockets);
>  			set_bit(CF_IS_OTHERCON, &othercon->flags);
>  			newcon->othercon = othercon;
> +			othercon->sock = newsock;
> +			newsock->sk->sk_user_data = othercon;
> +			add_sock(newsock, othercon);
> +			addcon = othercon;
> +		}
> +		else {
> +			printk("Extra connection from node %d attempted\n", nodeid);
> +			result = -EAGAIN;
> +			up_write(&newcon->sock_sem);
> +			goto accept_err;
>  		}
> -		othercon->sock = newsock;
> -		newsock->sk->sk_user_data = othercon;
> -		add_sock(newsock, othercon);
> -		addcon = othercon;
>  	}
>  	else {
>  		newsock->sk->sk_user_data = newcon;




More information about the Cluster-devel mailing list