> I am retesting now with just the memory barrier in aufs_nopage() uncommented
> again to be certain I did test correctly.

Ok, I have reproduced the bug with just the one change in aufs_nopage()

-       //smp_mb();
+       smp_mb();

So that change is not quite enough in my case.

I wonder if there is another race between au_robr_reset_file() and 
wake_up()? That is, could one cpu reset the vm_file just as another
cpu enters wait_event()? The second cpu sees the correct vm_file,
and doesn't go to sleep on the wait queue, but then the first cpu
calls wake_up() before the second cpu reassigns vm_file, and if there
are waiters, they also go past the wait_event(). Then these 2 CPUs can
race against eachother? I don't know if this is possible though...


mark



-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft 
Defy all challenges. Microsoft(R) Visual Studio 2008. 
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/

Reply via email to