aboutsummaryrefslogtreecommitdiffstats
path: root/net/tipc/socket.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/tipc/socket.c')
-rw-r--r--net/tipc/socket.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/net/tipc/socket.c b/net/tipc/socket.c
index 656940692a44..8f34db2a9785 100644
--- a/net/tipc/socket.c
+++ b/net/tipc/socket.c
@@ -1009,7 +1009,7 @@ static int tipc_send_group_bcast(struct socket *sock, struct msghdr *m,
1009 struct sock *sk = sock->sk; 1009 struct sock *sk = sock->sk;
1010 struct net *net = sock_net(sk); 1010 struct net *net = sock_net(sk);
1011 struct tipc_sock *tsk = tipc_sk(sk); 1011 struct tipc_sock *tsk = tipc_sk(sk);
1012 struct tipc_nlist *dsts = tipc_group_dests(tsk->group); 1012 struct tipc_nlist *dsts;
1013 struct tipc_mc_method *method = &tsk->mc_method; 1013 struct tipc_mc_method *method = &tsk->mc_method;
1014 bool ack = method->mandatory && method->rcast; 1014 bool ack = method->mandatory && method->rcast;
1015 int blks = tsk_blocks(MCAST_H_SIZE + dlen); 1015 int blks = tsk_blocks(MCAST_H_SIZE + dlen);
@@ -1018,9 +1018,6 @@ static int tipc_send_group_bcast(struct socket *sock, struct msghdr *m,
1018 struct sk_buff_head pkts; 1018 struct sk_buff_head pkts;
1019 int rc = -EHOSTUNREACH; 1019 int rc = -EHOSTUNREACH;
1020 1020
1021 if (!dsts->local && !dsts->remote)
1022 return -EHOSTUNREACH;
1023
1024 /* Block or return if any destination link or member is congested */ 1021 /* Block or return if any destination link or member is congested */
1025 rc = tipc_wait_for_cond(sock, &timeout, 1022 rc = tipc_wait_for_cond(sock, &timeout,
1026 !tsk->cong_link_cnt && tsk->group && 1023 !tsk->cong_link_cnt && tsk->group &&
@@ -1028,6 +1025,10 @@ static int tipc_send_group_bcast(struct socket *sock, struct msghdr *m,
1028 if (unlikely(rc)) 1025 if (unlikely(rc))
1029 return rc; 1026 return rc;
1030 1027
1028 dsts = tipc_group_dests(tsk->group);
1029 if (!dsts->local && !dsts->remote)
1030 return -EHOSTUNREACH;
1031
1031 /* Complete message header */ 1032 /* Complete message header */
1032 if (dest) { 1033 if (dest) {
1033 msg_set_type(hdr, TIPC_GRP_MCAST_MSG); 1034 msg_set_type(hdr, TIPC_GRP_MCAST_MSG);