On Fri, Oct 11, 2019 at 11:49:38AM -0500, Eric Sandeen wrote: > @@ -698,6 +699,13 @@ int invalidate_inodes(struct super_block *sb, bool kill_dirty) > inode_lru_list_del(inode); > spin_unlock(&inode->i_lock); > list_add(&inode->i_lru, &dispose); > + > + if (need_resched()) { > + spin_unlock(&sb->s_inode_list_lock); > + cond_resched(); > + dispose_list(&dispose); > + goto again; > + } > } > spin_unlock(&sb->s_inode_list_lock); > Is this equivalent to: + cond_resched_lock(&sb->s_inode_list_lock)); or is disposing of the list a crucial part here?