diff options
| author | Pekka Enberg <penberg@kernel.org> | 2010-10-24 12:57:05 -0400 |
|---|---|---|
| committer | Pekka Enberg <penberg@kernel.org> | 2010-10-24 12:57:05 -0400 |
| commit | 6d4121f6c20a0e86231d52f535f1c82423b3326f (patch) | |
| tree | 5c235cac699ca86b504850aa663ddadde0455a61 /net/unix | |
| parent | 92a5bbc11ff2442a54b2f1d313088c245828ef4e (diff) | |
| parent | 35da7a307c535f9c2929cae277f3df425c9f9b1e (diff) | |
Merge branch 'master' into for-linus
Conflicts:
include/linux/percpu.h
mm/percpu.c
Diffstat (limited to 'net/unix')
| -rw-r--r-- | net/unix/af_unix.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c index 0b39b2451ea5..0ebc777a6660 100644 --- a/net/unix/af_unix.c +++ b/net/unix/af_unix.c | |||
| @@ -1511,6 +1511,8 @@ restart: | |||
| 1511 | goto restart; | 1511 | goto restart; |
| 1512 | } | 1512 | } |
| 1513 | 1513 | ||
| 1514 | if (sock_flag(other, SOCK_RCVTSTAMP)) | ||
| 1515 | __net_timestamp(skb); | ||
| 1514 | skb_queue_tail(&other->sk_receive_queue, skb); | 1516 | skb_queue_tail(&other->sk_receive_queue, skb); |
| 1515 | unix_state_unlock(other); | 1517 | unix_state_unlock(other); |
| 1516 | other->sk_data_ready(other, len); | 1518 | other->sk_data_ready(other, len); |
| @@ -1722,6 +1724,9 @@ static int unix_dgram_recvmsg(struct kiocb *iocb, struct socket *sock, | |||
| 1722 | if (err) | 1724 | if (err) |
| 1723 | goto out_free; | 1725 | goto out_free; |
| 1724 | 1726 | ||
| 1727 | if (sock_flag(sk, SOCK_RCVTSTAMP)) | ||
| 1728 | __sock_recv_timestamp(msg, sk, skb); | ||
| 1729 | |||
| 1725 | if (!siocb->scm) { | 1730 | if (!siocb->scm) { |
| 1726 | siocb->scm = &tmp_scm; | 1731 | siocb->scm = &tmp_scm; |
| 1727 | memset(&tmp_scm, 0, sizeof(tmp_scm)); | 1732 | memset(&tmp_scm, 0, sizeof(tmp_scm)); |
| @@ -2033,11 +2038,10 @@ static unsigned int unix_poll(struct file *file, struct socket *sock, poll_table | |||
| 2033 | if (sk->sk_shutdown == SHUTDOWN_MASK) | 2038 | if (sk->sk_shutdown == SHUTDOWN_MASK) |
| 2034 | mask |= POLLHUP; | 2039 | mask |= POLLHUP; |
| 2035 | if (sk->sk_shutdown & RCV_SHUTDOWN) | 2040 | if (sk->sk_shutdown & RCV_SHUTDOWN) |
| 2036 | mask |= POLLRDHUP; | 2041 | mask |= POLLRDHUP | POLLIN | POLLRDNORM; |
| 2037 | 2042 | ||
| 2038 | /* readable? */ | 2043 | /* readable? */ |
| 2039 | if (!skb_queue_empty(&sk->sk_receive_queue) || | 2044 | if (!skb_queue_empty(&sk->sk_receive_queue)) |
| 2040 | (sk->sk_shutdown & RCV_SHUTDOWN)) | ||
| 2041 | mask |= POLLIN | POLLRDNORM; | 2045 | mask |= POLLIN | POLLRDNORM; |
| 2042 | 2046 | ||
| 2043 | /* Connection-based need to check for termination and startup */ | 2047 | /* Connection-based need to check for termination and startup */ |
