• Al Viro's avatar
    get rid of trylock loop in locking dentries on shrink list · 3b3f09f4
    Al Viro authored
    In case of trylock failure don't re-add to the list - drop the locks
    and carefully get them in the right order.  For shrink_dentry_list(),
    somebody having grabbed a reference to dentry means that we can
    kick it off-list, so if we find dentry being modified under us we
    don't need to play silly buggers with retries anyway - off the list
    it is.
    
    The locking logics taken out into a helper of its own; lock_parent()
    is no longer used for dentries that can be killed under us.
    
    [fix from Eric Biggers folded]
    Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
    3b3f09f4
dcache.c 95.9 KB