• Al Viro's avatar
    d_prune_aliases(): use a shrink list · b4cc0734
    Al Viro authored
    Instead of dropping aliases one by one, restarting, etc., just
    collect them into a shrink list and kill them off in one pass.
    
    We don't really need the restarts - one alias can't pin another
    (directory has only one alias, and couldn't be its own ancestor
    anyway), so collecting everything that is not busy and taking it
    out would take care of everything evictable that had been there
    as we entered the function.  And new aliases added while we'd
    been dropping old ones could just as easily have appeared right
    as we return to caller...
    Reviewed-by: default avatarChristian Brauner <brauner@kernel.org>
    Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
    b4cc0734
dcache.c 85.3 KB