[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20070222.053138.74748069.davem@davemloft.net>
Date: Thu, 22 Feb 2007 05:31:38 -0800 (PST)
From: David Miller <davem@...emloft.net>
To: johnpol@....mipt.ru
Cc: shemminger@...ux-foundation.org, netdev@...r.kernel.org
Subject: Re: [Bug 8013] New: select for write hangs on a socket after write
returned ECONNRESET
From: Evgeniy Polyakov <johnpol@....mipt.ru>
Date: Thu, 22 Feb 2007 15:14:27 +0300
> if (sk->sk_shutdown == SHUTDOWN_MASK || sk->sk_state == TCP_CLOSE)
> mask |= POLLHUP;
>
> to
>
> if (sk->sk_shutdown == SHUTDOWN_MASK || sk->sk_state == TCP_CLOSE)
> mask |= POLLHUP | (sk->sk_state == TCP_CLOSE)?POLLERR:0;
>
>
> Thoughts?
TCP_CLOSE is where we end up on a non-error close too, this has
the same kind of bug as your previous attempt to set POLLERR
here.
One side gets TCP_TIMEWAIT the other goes straight to TCP_CLOSE.
It really is not possible to change current semantics, they are the
best possible unfortunately.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists