|
@@ -316,7 +316,8 @@ static void unix_write_space(struct sock *sk)
|
|
|
if (unix_writable(sk)) {
|
|
|
wq = rcu_dereference(sk->sk_wq);
|
|
|
if (wq_has_sleeper(wq))
|
|
|
- wake_up_interruptible_sync(&wq->wait);
|
|
|
+ wake_up_interruptible_sync_poll(&wq->wait,
|
|
|
+ POLLOUT | POLLWRNORM | POLLWRBAND);
|
|
|
sk_wake_async(sk, SOCK_WAKE_SPACE, POLL_OUT);
|
|
|
}
|
|
|
rcu_read_unlock();
|
|
@@ -1710,7 +1711,8 @@ static int unix_dgram_recvmsg(struct kiocb *iocb, struct socket *sock,
|
|
|
goto out_unlock;
|
|
|
}
|
|
|
|
|
|
- wake_up_interruptible_sync(&u->peer_wait);
|
|
|
+ wake_up_interruptible_sync_poll(&u->peer_wait,
|
|
|
+ POLLOUT | POLLWRNORM | POLLWRBAND);
|
|
|
|
|
|
if (msg->msg_name)
|
|
|
unix_copy_addr(msg, skb->sk);
|