• Al Viro's avatar
    fs/namei.c: pull positivity check into follow_managed() · d41efb52
    Al Viro authored
    There are 4 callers; two proceed to check if result is positive and
    fail with ENOENT if it isn't; one (in handle_lookup_down()) is
    guaranteed to yield positive and one (in lookup_fast()) is _preceded_
    by positivity check.
    
    However, follow_managed() on a negative dentry is a (fairly cheap)
    no-op on anything other than autofs.  And negative autofs dentries
    are never hashed, so lookup_fast() is not going to run into one
    of those.  Moreover, successful follow_managed() on a _positive_
    dentry never yields a negative one (and we significantly rely upon
    that in callers of lookup_fast()).
    
    In other words, we can easily transpose the positivity check and
    the call of follow_managed() in lookup_fast().  And that allows
    to fold the positivity check *into* follow_managed(), simplifying
    life for the code downstream of its calls.
    Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
    d41efb52
namei.c 123 KB