--- /dev/null
+From 77f6e82adf349cbccf7e2ec7601b25c994e0b483 Mon Sep 17 00:00:00 2001
+From: Willy Tarreau <w@1wt.eu>
+Date: Sun, 24 Jan 2016 09:19:57 +0100
+Subject: af_unix: fix incorrect revert of 'lock_interruptible' in stream receive code
+
+From: Willy Tarreau <w@1wt.eu>
+
+As reported by Sultan Qasim, commit 3822b5c ("af_unix: Revert
+'lock_interruptible' in stream receive code") was accidently applied
+at the wrong place in the backport that appeared in 3.10.95, it
+affected unix_dgram_recvmsg() instead of unix_stream_recvmsg() due
+to now similar code sections there. The dgram part needs to remain
+but the stream part needs to be removed.
+
+Reported-By: Sultan Qasim <sultanqasim@gmail.com>
+Fixes: 3a57e78 (3.10.95)
+Signed-off-by: Willy Tarreau <w@1wt.eu>
+---
+ net/unix/af_unix.c | 18 +++++++++---------
+ 1 file changed, 9 insertions(+), 9 deletions(-)
+
+--- a/net/unix/af_unix.c
++++ b/net/unix/af_unix.c
+@@ -1934,7 +1934,14 @@ static int unix_dgram_recvmsg(struct kio
+ if (flags&MSG_OOB)
+ goto out;
+
+- mutex_lock(&u->readlock);
++ err = mutex_lock_interruptible(&u->readlock);
++ if (unlikely(err)) {
++ /* recvmsg() in non blocking mode is supposed to return -EAGAIN
++ * sk_rcvtimeo is not honored by mutex_lock_interruptible()
++ */
++ err = noblock ? -EAGAIN : -ERESTARTSYS;
++ goto out;
++ }
+
+ skip = sk_peek_offset(sk, flags);
+
+@@ -2083,14 +2090,7 @@ static int unix_stream_recvmsg(struct ki
+ memset(&tmp_scm, 0, sizeof(tmp_scm));
+ }
+
+- err = mutex_lock_interruptible(&u->readlock);
+- if (unlikely(err)) {
+- /* recvmsg() in non blocking mode is supposed to return -EAGAIN
+- * sk_rcvtimeo is not honored by mutex_lock_interruptible()
+- */
+- err = noblock ? -EAGAIN : -ERESTARTSYS;
+- goto out;
+- }
++ mutex_lock(&u->readlock);
+
+ do {
+ int chunk;