diff options
Diffstat (limited to 'net/unix/af_unix.c')
| -rw-r--r-- | net/unix/af_unix.c | 47 | 
1 files changed, 13 insertions, 34 deletions
| diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c index 68bb70a62afe..95b02a71fd47 100644 --- a/net/unix/af_unix.c +++ b/net/unix/af_unix.c @@ -638,9 +638,8 @@ static int unix_stream_connect(struct socket *, struct sockaddr *,  static int unix_socketpair(struct socket *, struct socket *);  static int unix_accept(struct socket *, struct socket *, int, bool);  static int unix_getname(struct socket *, struct sockaddr *, int); -static __poll_t unix_poll(struct file *, struct socket *, poll_table *); -static __poll_t unix_dgram_poll(struct file *, struct socket *, -				    poll_table *); +static __poll_t unix_poll_mask(struct socket *, __poll_t); +static __poll_t unix_dgram_poll_mask(struct socket *, __poll_t);  static int unix_ioctl(struct socket *, unsigned int, unsigned long);  static int unix_shutdown(struct socket *, int);  static int unix_stream_sendmsg(struct socket *, struct msghdr *, size_t); @@ -681,7 +680,7 @@ static const struct proto_ops unix_stream_ops = {  	.socketpair =	unix_socketpair,  	.accept =	unix_accept,  	.getname =	unix_getname, -	.poll =		unix_poll, +	.poll_mask =	unix_poll_mask,  	.ioctl =	unix_ioctl,  	.listen =	unix_listen,  	.shutdown =	unix_shutdown, @@ -704,7 +703,7 @@ static const struct proto_ops unix_dgram_ops = {  	.socketpair =	unix_socketpair,  	.accept =	sock_no_accept,  	.getname =	unix_getname, -	.poll =		unix_dgram_poll, +	.poll_mask =	unix_dgram_poll_mask,  	.ioctl =	unix_ioctl,  	.listen =	sock_no_listen,  	.shutdown =	unix_shutdown, @@ -726,7 +725,7 @@ static const struct proto_ops unix_seqpacket_ops = {  	.socketpair =	unix_socketpair,  	.accept =	unix_accept,  	.getname =	unix_getname, -	.poll =		unix_dgram_poll, +	.poll_mask =	unix_dgram_poll_mask,  	.ioctl =	unix_ioctl,  	.listen =	unix_listen,  	.shutdown =	unix_shutdown, @@ -2630,13 +2629,10 @@ static int unix_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)  	return err;  } -static __poll_t unix_poll(struct file *file, struct socket *sock, poll_table *wait) +static __poll_t unix_poll_mask(struct socket *sock, __poll_t events)  {  	struct sock *sk = sock->sk; -	__poll_t mask; - -	sock_poll_wait(file, sk_sleep(sk), wait); -	mask = 0; +	__poll_t mask = 0;  	/* exceptional events? */  	if (sk->sk_err) @@ -2665,15 +2661,11 @@ static __poll_t unix_poll(struct file *file, struct socket *sock, poll_table *wa  	return mask;  } -static __poll_t unix_dgram_poll(struct file *file, struct socket *sock, -				    poll_table *wait) +static __poll_t unix_dgram_poll_mask(struct socket *sock, __poll_t events)  {  	struct sock *sk = sock->sk, *other; -	unsigned int writable; -	__poll_t mask; - -	sock_poll_wait(file, sk_sleep(sk), wait); -	mask = 0; +	int writable; +	__poll_t mask = 0;  	/* exceptional events? */  	if (sk->sk_err || !skb_queue_empty(&sk->sk_error_queue)) @@ -2699,7 +2691,7 @@ static __poll_t unix_dgram_poll(struct file *file, struct socket *sock,  	}  	/* No write status requested, avoid expensive OUT tests. */ -	if (!(poll_requested_events(wait) & (EPOLLWRBAND|EPOLLWRNORM|EPOLLOUT))) +	if (!(events & (EPOLLWRBAND|EPOLLWRNORM|EPOLLOUT)))  		return mask;  	writable = unix_writable(sk); @@ -2852,20 +2844,6 @@ static const struct seq_operations unix_seq_ops = {  	.stop   = unix_seq_stop,  	.show   = unix_seq_show,  }; - -static int unix_seq_open(struct inode *inode, struct file *file) -{ -	return seq_open_net(inode, file, &unix_seq_ops, -			    sizeof(struct seq_net_private)); -} - -static const struct file_operations unix_seq_fops = { -	.open		= unix_seq_open, -	.read		= seq_read, -	.llseek		= seq_lseek, -	.release	= seq_release_net, -}; -  #endif  static const struct net_proto_family unix_family_ops = { @@ -2884,7 +2862,8 @@ static int __net_init unix_net_init(struct net *net)  		goto out;  #ifdef CONFIG_PROC_FS -	if (!proc_create("unix", 0, net->proc_net, &unix_seq_fops)) { +	if (!proc_create_net("unix", 0, net->proc_net, &unix_seq_ops, +			sizeof(struct seq_net_private))) {  		unix_sysctl_unregister(net);  		goto out;  	} | 
