[PATCH 05/20] afs: Implement @sys substitution handling

David Howells dhowells at redhat.com
Fri Apr 6 01:08:55 PDT 2018


Al Viro <viro at ZenIV.linux.org.uk> 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?



More information about the linux-afs mailing list