On Fri, Jun 03, 2016 at 12:44:51AM +0000, Trond Myklebust wrote:

> That would have to be a really tight race, since the code in 
> _nfs4_open_and_get_state() currently reads:
> 
>                 d_drop(dentry);
>                 alias = d_exact_alias(dentry, state->inode);
>                 if (!alias)
>                         alias = d_splice_alias(igrab(state->inode), dentry);
> 
> IOW: something would have to be acting between the d_drop() and 
> d_splice_alias() above...

How?  dentry is
        * negative (it would better be, or we are _really_ fucked)
        * unhashed

How does whoever's rehashing it stumble across that thing?

Reply via email to