diff options
Diffstat (limited to 'net/unix/af_unix.c')
-rw-r--r-- | net/unix/af_unix.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c index df923caa8389..c51e2831f498 100644 --- a/net/unix/af_unix.c +++ b/net/unix/af_unix.c | |||
@@ -1781,7 +1781,12 @@ restart_locked: | |||
1781 | goto out_unlock; | 1781 | goto out_unlock; |
1782 | } | 1782 | } |
1783 | 1783 | ||
1784 | if (unlikely(unix_peer(other) != sk && unix_recvq_full(other))) { | 1784 | /* other == sk && unix_peer(other) != sk if |
1785 | * - unix_peer(sk) == NULL, destination address bound to sk | ||
1786 | * - unix_peer(sk) == sk by time of get but disconnected before lock | ||
1787 | */ | ||
1788 | if (other != sk && | ||
1789 | unlikely(unix_peer(other) != sk && unix_recvq_full(other))) { | ||
1785 | if (timeo) { | 1790 | if (timeo) { |
1786 | timeo = unix_wait_for_peer(other, timeo); | 1791 | timeo = unix_wait_for_peer(other, timeo); |
1787 | 1792 | ||