On Thu, Mar 16, 2006 at 02:06:26AM -0800, David S. Miller ([EMAIL PROTECTED]) 
wrote:
> From: Evgeniy Polyakov <[EMAIL PROTECTED]>
> Date: Thu, 16 Mar 2006 13:02:41 +0300
> 
> > Actually I added sock_async() checks to detect cases, when ucopy is set
> > somewhere, but socket was marked as async later, so I just use
> > sock_async() where other cheks could be done.
> 
> Can you see that these two states are mutually exclusive?
> It is guarenteed by all the logic surrounding the ucopy
> code.
> 
> No packets can be processed except by tp->ucopy.task user.  Becuase he
> locked the socket and had exclusive access to it when tp->ucopy.task
> pointer was set.  If the socket is ever unlocked, and packets are
> allowed to be processed by other TCP users, tp->ucopy.task will be
> cleared to NULL.
> 
> Well, what more can I say to convince you?  Perhaps I can suggest to
> add a BUG_ON(sock_async(sk)) where tp->ucopy.task is non-NULL if you
> don't believe me :-)

I completely understand you :)
If socket is marked as async, no ucopy must be done and vice versa.
If user starts reading from socket and thus ucopy.task is set, 
it can not run async code.

-- 
        Evgeniy Polyakov
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to