diff options
Diffstat (limited to 'net/tipc/socket.c')
-rw-r--r-- | net/tipc/socket.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/net/tipc/socket.c b/net/tipc/socket.c index b24dab3996c9..1f236271766c 100644 --- a/net/tipc/socket.c +++ b/net/tipc/socket.c | |||
@@ -715,7 +715,7 @@ static unsigned int tipc_poll(struct file *file, struct socket *sock, | |||
715 | { | 715 | { |
716 | struct sock *sk = sock->sk; | 716 | struct sock *sk = sock->sk; |
717 | struct tipc_sock *tsk = tipc_sk(sk); | 717 | struct tipc_sock *tsk = tipc_sk(sk); |
718 | struct tipc_group *grp = tsk->group; | 718 | struct tipc_group *grp; |
719 | u32 revents = 0; | 719 | u32 revents = 0; |
720 | 720 | ||
721 | sock_poll_wait(file, sk_sleep(sk), wait); | 721 | sock_poll_wait(file, sk_sleep(sk), wait); |
@@ -736,9 +736,9 @@ static unsigned int tipc_poll(struct file *file, struct socket *sock, | |||
736 | revents |= POLLIN | POLLRDNORM; | 736 | revents |= POLLIN | POLLRDNORM; |
737 | break; | 737 | break; |
738 | case TIPC_OPEN: | 738 | case TIPC_OPEN: |
739 | if (!grp || tipc_group_size(grp)) | 739 | grp = tsk->group; |
740 | if (!tsk->cong_link_cnt) | 740 | if ((!grp || tipc_group_is_open(grp)) && !tsk->cong_link_cnt) |
741 | revents |= POLLOUT; | 741 | revents |= POLLOUT; |
742 | if (!tipc_sk_type_connectionless(sk)) | 742 | if (!tipc_sk_type_connectionless(sk)) |
743 | break; | 743 | break; |
744 | if (skb_queue_empty(&sk->sk_receive_queue)) | 744 | if (skb_queue_empty(&sk->sk_receive_queue)) |