Hi Al, This series is a merge of the two previous sets of patches that broke the inode LRU operations and the first half of iput_final() out from under the inode_lock and then split the lists under separate locks. The patches should apply to your current merge-stem tree. I can rebase it on a different tree if you want. Version 3: - remove up wake_up_inode() inode_lock avoidance optimisation as the inode_lock is no longer protecting i_state. - Added a BUG_ON() check to evict() to ensure that inodes are removed from the LRU before being evicted. - removed inode_lock from igrab() when removing inode_lock from the first half of iput_final() - added 3 patches to convert the per-sb inode list, the writeback lists and the inode hashes under their own locks. The changes from the first version of these patches (posted separately) are: - cleaned up comment for writeback_single_inode() - dropped __mark_inode_dirty() cleanup and just moved the minimum amount of code around to handle the locking changes cleanly. - moved adding inodes to sb list under the hash lock as well so we don't have inodes that are not on the per-sb lists on the hash. - added a patch to clean up inode_lock references in documentation and comments. Version 2: - make i_state checks/__iget() atomic under inode->i_lock - merge dispose_one_inode() into evict() - move inode hash removal after ->evict_inode call. - always take the inode_lru_lock() when checking whether the inode is on the lru or not. -- 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