On Thu, Apr 05, 2018 at 09:30:04PM +0100, David Howells wrote: > +static struct dentry *afs_lookup_atsys(struct inode *dir, struct dentry *dentry, > + struct key *key) > +{ > + ret = lookup_one_len(buf, parent, len); Er... Parent is locked only shared here and lookup_one_len() seriously depends upon exclusive lock. As it is, race with lookup of the full name will mess the things up very badly.