> 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/
