Subject: Re: [PATCH] net: fix race in the receive/select

From: Oleg Nesterov <[email-masked]>
Date: Fri, 26 Jun 2009 15:46:43 +0200

On 06/26, Eric Dumazet wrote:
>
> Davide Libenzi a écrit :
> >
> > Do you think of it as good design adding an MB on a subsystem, because of
> > the special locking logic of another one?
> > The (eventual) slowdown, IMO can be argued sideways, by saying that
> > non-socket users will pay the price for their polls.
>
> I wont argue with you David, just try to correct bugs.

I must admit, I agree with David.

> fs/ext4/ioctl.c line 182
>
> 	set_current_state(TASK_INTERRUPTIBLE);
> 	add_wait_queue(&EXT4_SB(sb)->ro_wait_queue, &wait);
> 	if (timer_pending(&EXT4_SB(sb)->turn_ro_timer)) {
> 		schedule();
>
> Another example of missing barrier after add_wait_queue()

Assuming that ->turn_ro_timer does wake_up(->ro_wait_queue) everything
is OK, we do not need a barrier.

Oleg.