[Cluster-devel] [DLM PATCH] DLM: Replace nodeid_to_addr with kernel_getpeername

Bob Peterson rpeterso at redhat.com
Mon Jan 18 19:59:37 UTC 2016


----- Original Message -----
> Hi,
> 
> This patch replaces the call to nodeid_to_addr with a call to
> kernel_getpeername. This avoids taking a spinlock because it may
> potentially be called from a softirq context.
> 
> Regards,
> 
> Bob Peterson
> Red Hat File Systems
> 
> Signed-off-by: Bob Peterson <rpeterso at redhat.com>
> ---
> diff --git a/fs/dlm/lowcomms.c b/fs/dlm/lowcomms.c
> index 3a37bd3..a1a50f3 100644
> --- a/fs/dlm/lowcomms.c
> +++ b/fs/dlm/lowcomms.c
> @@ -469,8 +469,9 @@ static void lowcomms_error_report(struct sock *sk)
>  {
>  	struct connection *con = sock2con(sk);
>  	struct sockaddr_storage saddr;
> +	int buflen;
>  
> -	if (nodeid_to_addr(con->nodeid, &saddr, NULL, false)) {
> +	if (kernel_getpeername(con->sock, (struct sockaddr *)&saddr, &buflen)) {
>  		printk_ratelimited(KERN_ERR "dlm: node %d: socket error "
>  				   "sending to node %d, port %d, "
>  				   "sk_err=%d/%d\n", dlm_our_nodeid(),
> 
> 
Hi,

Self-NACK. A problem was found during testing. I'll post a replacement shortly.

Regards,

Bob Peterson
Red Hat File Systems




More information about the Cluster-devel mailing list