On Fri, Oct 08, 2010 at 04:21:32PM +1100, Dave Chinner wrote: > + spin_unlock(&sb->s_inodes_lock); > > - spin_lock(&inode_lru_lock); > - list_move(&inode->i_lru, dispose); > - spin_unlock(&inode_lru_lock); > + dispose_one_inode(inode); > > - percpu_counter_dec(&nr_inodes_unused); > + spin_lock(&sb->s_inodes_lock); And now you've unlocked the list and even blocked. What's going to keep next valid through that fun? > + spin_unlock(&inode_lru_lock); > + > + dispose_one_inode(inode); > + cond_resched(); > + > + spin_lock(&inode_lru_lock); Same, only worse - in the previous you might hope for lack of activity on fs, in this one you really can't. -- 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