I am still very much against the locking design of Dave's patchset, but especially the way it is broken out. I could fathom accepting some of the i_lock width reduction if they are properly broken out and justified and documented why they are safe. But lumping this huge series of stuff before inode_lock is even lifted is not the right way to go about it. I still maintain that i_lock for icache state lock is the way to go at least until we get quite a way down the track. I think a lot of people can't see it maybe because my patchset wasn't broken out terribly well. So I am posting here just the initial lock breaking part, reworked. In particular, i_lock coverage is established before adding broken out data structure locks, but it also cleans things up and attempts not to move stuff around that isn't strictly required. I still wait until everything is covered before touching inode_lock, but I have explained how it is actually possible to start removing some of inode_lock even before then, which I think is a good demonstration of the power of having full i_lock coverage. The steps here should be relatively easy to follow and verify (I hope), and they lead quite easily to the actual scalability improvement steps. So please don't get sidetracked on the temporary trylock ugliness! Thanks, Nick -- 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