Patch "af_unix: fix incorrect revert of 'lock_interruptible' in stream receive code" has been added to the 3.10-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
af_unix: fix incorrect revert of 'lock_interruptible' in stream receive code
to the 3.10-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
af_unix-fix-incorrect-revert-of-lock_interruptible-in-stream.patch
and it can be found in the queue-3.10 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
77f6e82adf349cbccf7e2ec7601b25c994e0b483Mon Sep 17 00:00:00 2001
From: Willy Tarreau <[email protected]>
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 <[email protected]>
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.
--- net/unix/af_unix.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-)
net/unix/af_unix.c +9 -9
@@ -1934,7 +1934,14 @@ static int unix_dgram_recvmsg(struct kioif (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 kimemset (&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;
Patches currently in stable-queue which might be from [email protected] are
queue-3.10/af_unix-fix-incorrect-revert-of-lock_interruptible-in-stream.patch