net: convert datagram_poll users tp ->poll_mask
Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
@@ -2498,7 +2498,7 @@ int compat_udp_getsockopt(struct sock *sk, int level, int optname,
|
||||
* udp_poll - wait for a UDP event.
|
||||
* @file - file struct
|
||||
* @sock - socket
|
||||
* @wait - poll table
|
||||
* @events - events to wait for
|
||||
*
|
||||
* This is same as datagram poll, except for the special case of
|
||||
* blocking sockets. If application is using a blocking fd
|
||||
@@ -2507,23 +2507,23 @@ int compat_udp_getsockopt(struct sock *sk, int level, int optname,
|
||||
* but then block when reading it. Add special case code
|
||||
* to work around these arguably broken applications.
|
||||
*/
|
||||
__poll_t udp_poll(struct file *file, struct socket *sock, poll_table *wait)
|
||||
__poll_t udp_poll_mask(struct socket *sock, __poll_t events)
|
||||
{
|
||||
__poll_t mask = datagram_poll(file, sock, wait);
|
||||
__poll_t mask = datagram_poll_mask(sock, events);
|
||||
struct sock *sk = sock->sk;
|
||||
|
||||
if (!skb_queue_empty(&udp_sk(sk)->reader_queue))
|
||||
mask |= EPOLLIN | EPOLLRDNORM;
|
||||
|
||||
/* Check for false positives due to checksum errors */
|
||||
if ((mask & EPOLLRDNORM) && !(file->f_flags & O_NONBLOCK) &&
|
||||
if ((mask & EPOLLRDNORM) && !(sock->file->f_flags & O_NONBLOCK) &&
|
||||
!(sk->sk_shutdown & RCV_SHUTDOWN) && first_packet_length(sk) == -1)
|
||||
mask &= ~(EPOLLIN | EPOLLRDNORM);
|
||||
|
||||
return mask;
|
||||
|
||||
}
|
||||
EXPORT_SYMBOL(udp_poll);
|
||||
EXPORT_SYMBOL(udp_poll_mask);
|
||||
|
||||
int udp_abort(struct sock *sk, int err)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user