af_iucv: block writing if msg limit is exceeded
authorUrsula Braun <ursula.braun@de.ibm.com>
Wed, 8 Feb 2012 00:19:46 +0000 (00:19 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 8 Feb 2012 23:50:19 +0000 (18:50 -0500)
When polling on an AF_IUCV socket, writing should be blocked if the
number of pending messages exceeds a defined limit.

Signed-off-by: Ursula Braun <ursula.braun@de.ibm.com>
Signed-off-by: Frank Blaschka <frank.blaschka@de.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/iucv/af_iucv.c

index 3ce0259499edff36c4508d09eff660a85d0d772b..ef6ab71921fc562cd3780a30541c4c238f71bee9 100644 (file)
@@ -1490,7 +1490,7 @@ unsigned int iucv_sock_poll(struct file *file, struct socket *sock,
        if (sk->sk_state == IUCV_DISCONN)
                mask |= POLLIN;
 
-       if (sock_writeable(sk))
+       if (sock_writeable(sk) && iucv_below_msglim(sk))
                mask |= POLLOUT | POLLWRNORM | POLLWRBAND;
        else
                set_bit(SOCK_ASYNC_NOSPACE, &sk->sk_socket->flags);