Al Viro <viro@xxxxxxxxxxxxxxxxxx> 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. How should it be done? Do I have to use d_alloc_parallel(), analogous to lookup_slow() without taking the rwsem again? David PS: Can you stick a banner comment on d_alloc_parallel() describing it?