aboutsummaryrefslogtreecommitdiffstats
path: root/net/unix/af_unix.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2015-12-17 22:08:28 -0500
committerDavid S. Miller <davem@davemloft.net>2015-12-17 22:08:28 -0500
commitb3e0d3d7bab14f2544a3314bec53a23dc7dd2206 (patch)
tree2bd3c1c1d128e0c362655fa70a6eea02fc856f62 /net/unix/af_unix.c
parent3268e5cb494d8778a5a67a9fa2b1bdb0243b77ad (diff)
parent73796d8bf27372e26c2b79881947304c14c2d353 (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.c13
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;
2324unlock: 2317unlock:
2325 unix_state_unlock(sk); 2318 unix_state_unlock(sk);