diff options
| author | James Bottomley <James.Bottomley@HansenPartnership.com> | 2016-01-07 15:51:13 -0800 | 
|---|---|---|
| committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2016-01-07 15:51:13 -0800 | 
| commit | abaee091a18c19ccd86feb1c8374585d82e96777 (patch) | |
| tree | 01602bae73e1278c3d98dafe1c269049927c58ce /net/socket.c | |
| parent | a2746fb16e41b7c8f02aa4d2605ecce97abbebbd (diff) | |
| parent | 3f8d6f2a0797e8c650a47e5c1b5c2601a46f4293 (diff) | |
Merge branch 'jejb-scsi' into misc
Diffstat (limited to 'net/socket.c')
| -rw-r--r-- | net/socket.c | 21 | 
1 files changed, 7 insertions, 14 deletions
diff --git a/net/socket.c b/net/socket.c index dd2c247c99e3..456fadb3d819 100644 --- a/net/socket.c +++ b/net/socket.c @@ -1056,27 +1056,20 @@ static int sock_fasync(int fd, struct file *filp, int on)  	return 0;  } -/* This function may be called only under socket lock or callback_lock or rcu_lock */ +/* This function may be called only under rcu_lock */ -int sock_wake_async(struct socket *sock, int how, int band) +int sock_wake_async(struct socket_wq *wq, int how, int band)  { -	struct socket_wq *wq; - -	if (!sock) -		return -1; -	rcu_read_lock(); -	wq = rcu_dereference(sock->wq); -	if (!wq || !wq->fasync_list) { -		rcu_read_unlock(); +	if (!wq || !wq->fasync_list)  		return -1; -	} +  	switch (how) {  	case SOCK_WAKE_WAITD: -		if (test_bit(SOCK_ASYNC_WAITDATA, &sock->flags)) +		if (test_bit(SOCKWQ_ASYNC_WAITDATA, &wq->flags))  			break;  		goto call_kill;  	case SOCK_WAKE_SPACE: -		if (!test_and_clear_bit(SOCK_ASYNC_NOSPACE, &sock->flags)) +		if (!test_and_clear_bit(SOCKWQ_ASYNC_NOSPACE, &wq->flags))  			break;  		/* fall through */  	case SOCK_WAKE_IO: @@ -1086,7 +1079,7 @@ call_kill:  	case SOCK_WAKE_URG:  		kill_fasync(&wq->fasync_list, SIGURG, band);  	} -	rcu_read_unlock(); +  	return 0;  }  EXPORT_SYMBOL(sock_wake_async);  | 
