On Sun, 2010-06-06 at 17:50 +0300, Artem Bityutskiy wrote: > From: Artem Bityutskiy <Artem.Bityutskiy@xxxxxxxxx> > > The proper way for file-systems to synchronize the superblock > should be as follows: > > 1. when modifying the SB, first modify it, then mark it as dirty; > 2. when synchronizing the SB, first mark as clean, then start > synchronizing. > > And to make ensure the order, we need memory barriers in 'sb_mark_clean()' > and 'sb_mark_dirty()'. I believe this stuff is a separate story, and should be handled separately. I'll keep this separately from the 'sync_supers()' wakes up optimization. I actually now cannot prove myself whether these smp_mb()'s I added in this patch make sense or not, and whether the races in FSes I was trying to address can be addressed without spinlocks. Really dunno - but I will keep trying to get better understanding. Reading Documentation/memory-barriers.txt and some McKenny's docs only did not help so far :-) -- Best Regards, Artem Bityutskiy (Артём Битюцкий) -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html