• Al Viro's avatar
    autofs braino fix for do_last() · e6ec03a2
    Al Viro authored
    It's an analogue of commit 7500c38a (fix the braino in "namei:
    massage lookup_slow() to be usable by lookup_one_len_unlocked()").
    The same problem (->lookup()-returned unhashed negative dentry
    just might be an autofs one with ->d_manage() that would wait
    until the daemon makes it positive) applies in do_last() - we
    need to do follow_managed() first.
    
    Fortunately, remaining callers of follow_managed() are OK - only
    autofs has that weirdness (negative dentry that does not mean
    an instant -ENOENT)) and autofs never has its negative dentries
    hashed, so we can't pick one from a dcache lookup.
    
    ->d_manage() is a bloody mess ;-/
    
    Cc: stable@vger.kernel.org # v4.6
    Spotted-by: default avatarIan Kent <raven@themaw.net>
    Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
    e6ec03a2
namei.c 118 KB