On Fri 11-10-19 11:49:38, Eric Sandeen wrote: > One remains: remove_dquot_ref(), because I'm not quite sure how to deal > with that one w/o taking the i_lock. Yeah, that will be somewhat tricky. But I think we can modify the standard iget-iput dance like: if (need_resched()) { spin_lock(&inode->i_lock); if (inode->i_state & (I_FREEING|I_WILL_FREE|I_NEW)) { /* * Cannot break on this inode, need to do one * more. */ spin_unlock(&inode->i_lock); continue; } __iget(inode); spin_unlock(&inode->i_lock); spin_unlock(&sb->s_inode_list_lock); iput(put_inode); put_inode = inode; cond_resched(); spin_lock(&sb->s_inode_list_lock); } ... iput(put_inode); Will you transform this into a proper patch in your series or should I do it? Honza -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR