lkml.org 
[lkml]   [2000]   [Mar]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: [patch] AF_UNIX: notify peer on close
Date
Hello!

> May be sock_orphan(sk) must be after
> wake_up_interruptible_all(&sk->protinfo.af_unix.peer_wait); ?

No, it is not related to orphaned state, it wakes peers
sleeping on us.

> --- linux/net/unix/af_unix.c.orig Sat Mar 4 10:08:02 2000
> +++ linux/net/unix/af_unix.c Sat Mar 4 18:53:41 2000
> @@ -356,8 +356,10 @@
> if (!skb_queue_empty(&sk->receive_queue) || embrion)
> skpair->err = ECONNRESET;
> unix_state_wunlock(skpair);
> - sk->state_change(skpair);
> - sock_wake_async(sk->socket,1,POLL_HUP);
> + skpair->state_change(skpair);
> + read_lock(&skpair->callback_lock);
> + sock_wake_async(skpair->socket,0,POLL_HUP);
> + read_lock(&skpair->callback_lock);
> }
> sock_put(skpair); /* It may now die */
> unix_peer(sk) = NULL;

I apologize, mipsrint, the second read_lock is read_unlock really.

> I think, nobody uses si_band. si_code is enough (POLL_xxx).

Grrr... What a crap, to be honest. Are these fields described
in any standard? si_code is evident redundancy. Moreover, it
is not only redundancy, it is deoptimization not allowing to
merge events, when they can be merged by oring event masks.

Alexey

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:56    [W:0.095 / U:0.116 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site