• Al Viro's avatar
    procfs: get rid of ancient BS in pid_revalidate() uses · 1bbc5513
    Al Viro authored
    First of all, calling pid_revalidate() in the end of <pid>/* lookups
    is *not* about closing any kind of races; that used to be true once
    upon a time, but these days those comments are actively misleading.
    Especially since pid_revalidate() doesn't even do d_drop() on
    failure anymore.  It doesn't matter, anyway, since once
    pid_revalidate() starts returning false, ->d_delete() of those
    dentries starts saying "don't keep"; they won't get stuck in
    dcache any longer than they are pinned.
    
    These calls cannot be just removed, though - the side effect of
    pid_revalidate() (updating i_uid/i_gid/etc.) is what we are calling
    it for here.
    
    Let's separate the "update ownership" into a new helper (pid_update_inode())
    and use it, both in lookups and in pid_revalidate() itself.
    
    The comments in pid_revalidate() are also out of date - they refer to
    the time when pid_revalidate() used to call d_drop() directly...
    Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
    1bbc5513
base.c 85.4 KB