diff options
author | David S. Miller <davem@davemloft.net> | 2015-12-17 22:08:28 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-12-17 22:08:28 -0500 |
commit | b3e0d3d7bab14f2544a3314bec53a23dc7dd2206 (patch) | |
tree | 2bd3c1c1d128e0c362655fa70a6eea02fc856f62 /net/unix/af_unix.c | |
parent | 3268e5cb494d8778a5a67a9fa2b1bdb0243b77ad (diff) | |
parent | 73796d8bf27372e26c2b79881947304c14c2d353 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts:
drivers/net/geneve.c
Here we had an overlapping change, where in 'net' the extraneous stats
bump was being removed whilst in 'net-next' the final argument to
udp_tunnel6_xmit_skb() was being changed.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/unix/af_unix.c')
-rw-r--r-- | net/unix/af_unix.c | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c index 1c3c1f3a3ec4..b1314c099417 100644 --- a/net/unix/af_unix.c +++ b/net/unix/af_unix.c | |||
@@ -2263,14 +2263,7 @@ static int unix_stream_read_generic(struct unix_stream_read_state *state) | |||
2263 | /* Lock the socket to prevent queue disordering | 2263 | /* Lock the socket to prevent queue disordering |
2264 | * while sleeps in memcpy_tomsg | 2264 | * while sleeps in memcpy_tomsg |
2265 | */ | 2265 | */ |
2266 | err = mutex_lock_interruptible(&u->readlock); | 2266 | mutex_lock(&u->readlock); |
2267 | if (unlikely(err)) { | ||
2268 | /* recvmsg() in non blocking mode is supposed to return -EAGAIN | ||
2269 | * sk_rcvtimeo is not honored by mutex_lock_interruptible() | ||
2270 | */ | ||
2271 | err = noblock ? -EAGAIN : -ERESTARTSYS; | ||
2272 | goto out; | ||
2273 | } | ||
2274 | 2267 | ||
2275 | if (flags & MSG_PEEK) | 2268 | if (flags & MSG_PEEK) |
2276 | skip = sk_peek_offset(sk, flags); | 2269 | skip = sk_peek_offset(sk, flags); |
@@ -2314,12 +2307,12 @@ again: | |||
2314 | timeo = unix_stream_data_wait(sk, timeo, last, | 2307 | timeo = unix_stream_data_wait(sk, timeo, last, |
2315 | last_len); | 2308 | last_len); |
2316 | 2309 | ||
2317 | if (signal_pending(current) || | 2310 | if (signal_pending(current)) { |
2318 | mutex_lock_interruptible(&u->readlock)) { | ||
2319 | err = sock_intr_errno(timeo); | 2311 | err = sock_intr_errno(timeo); |
2320 | goto out; | 2312 | goto out; |
2321 | } | 2313 | } |
2322 | 2314 | ||
2315 | mutex_lock(&u->readlock); | ||
2323 | continue; | 2316 | continue; |
2324 | unlock: | 2317 | unlock: |
2325 | unix_state_unlock(sk); | 2318 | unix_state_unlock(sk); |