• L
    vfs: fix dentry LRU list handling and nr_dentry_unused accounting · 89dc77bc
    Linus Torvalds 提交于
    The LRU list changes interacted badly with our nr_dentry_unused
    accounting, and even worse with the new DCACHE_LRU_LIST bit logic.
    
    This introduces helper functions to make sure everything follows the
    proper dcache d_lru list rules: the dentry cache is complicated by the
    fact that some of the hotpaths don't even want to look at the LRU list
    at all, and the fact that we use the same list entry in the dentry for
    both the LRU list and for our temporary shrinking lists when removing
    things from the LRU.
    
    The helper functions temporarily have some extra sanity checking for the
    flag bits that have to match the current LRU state of the dentry.  We'll
    remove that before the final 3.12 release, but considering how easy it
    is to get wrong, this first cleanup version has some very particular
    sanity checking.
    Acked-by: NAl Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
    89dc77bc
dcache.c 87.9 KB