On Thu, Aug 01, 2019 at 04:02:40PM +0200, Ondrej Mosnacek wrote: > @@ -1276,6 +1277,8 @@ static void d_walk(struct dentry *parent, void *data, > again: > read_seqbegin_or_lock(&rename_lock, &seq); > this_parent = parent; > + if (lock_inode) > + inode_lock(this_parent->d_inode); Suppose we are on the second pass through that thing - with rename_lock held. What will happen to that inode_lock?