@@ -592,42 +592,40 @@ int dlm_lowcomms_nodes_set_mark(int nodeid, unsigned int mark)
592
592
static void lowcomms_error_report (struct sock * sk )
593
593
{
594
594
struct connection * con ;
595
- struct sockaddr_storage saddr ;
596
595
void (* orig_report )(struct sock * ) = NULL ;
596
+ struct inet_sock * inet ;
597
597
598
598
read_lock_bh (& sk -> sk_callback_lock );
599
599
con = sock2con (sk );
600
600
if (con == NULL )
601
601
goto out ;
602
602
603
603
orig_report = listen_sock .sk_error_report ;
604
- if (kernel_getpeername (sk -> sk_socket , (struct sockaddr * )& saddr ) < 0 ) {
605
- printk_ratelimited (KERN_ERR "dlm: node %d: socket error "
606
- "sending to node %d, port %d, "
607
- "sk_err=%d/%d\n" , dlm_our_nodeid (),
608
- con -> nodeid , dlm_config .ci_tcp_port ,
609
- sk -> sk_err , sk -> sk_err_soft );
610
- } else if (saddr .ss_family == AF_INET ) {
611
- struct sockaddr_in * sin4 = (struct sockaddr_in * )& saddr ;
612
604
605
+ inet = inet_sk (sk );
606
+ switch (sk -> sk_family ) {
607
+ case AF_INET :
613
608
printk_ratelimited (KERN_ERR "dlm: node %d: socket error "
614
- "sending to node %d at %pI4, port %d, "
609
+ "sending to node %d at %pI4, dport %d, "
615
610
"sk_err=%d/%d\n" , dlm_our_nodeid (),
616
- con -> nodeid , & sin4 -> sin_addr . s_addr ,
617
- dlm_config . ci_tcp_port , sk -> sk_err ,
611
+ con -> nodeid , & inet -> inet_daddr ,
612
+ ntohs ( inet -> inet_dport ) , sk -> sk_err ,
618
613
sk -> sk_err_soft );
619
- } else {
620
- struct sockaddr_in6 * sin6 = (struct sockaddr_in6 * )& saddr ;
621
-
614
+ break ;
615
+ case AF_INET6 :
622
616
printk_ratelimited (KERN_ERR "dlm: node %d: socket error "
623
- "sending to node %d at %u.%u.%u.%u, "
624
- "port %d, sk_err=%d/%d\n" , dlm_our_nodeid (),
625
- con -> nodeid , sin6 -> sin6_addr .s6_addr32 [0 ],
626
- sin6 -> sin6_addr .s6_addr32 [1 ],
627
- sin6 -> sin6_addr .s6_addr32 [2 ],
628
- sin6 -> sin6_addr .s6_addr32 [3 ],
629
- dlm_config .ci_tcp_port , sk -> sk_err ,
617
+ "sending to node %d at %pI6c, "
618
+ "dport %d, sk_err=%d/%d\n" , dlm_our_nodeid (),
619
+ con -> nodeid , & sk -> sk_v6_daddr ,
620
+ ntohs (inet -> inet_dport ), sk -> sk_err ,
630
621
sk -> sk_err_soft );
622
+ break ;
623
+ default :
624
+ printk_ratelimited (KERN_ERR "dlm: node %d: socket error "
625
+ "invalid socket family %d set, "
626
+ "sk_err=%d/%d\n" , dlm_our_nodeid (),
627
+ sk -> sk_family , sk -> sk_err , sk -> sk_err_soft );
628
+ goto out ;
631
629
}
632
630
633
631
/* below sendcon only handling */
0 commit comments