• Andrew Morton's avatar
    invalidate_inode_pages2(): ignore page refcounts · a839df3c
    Andrew Morton authored
    The recent fix to invalidate_inode_pages() (git commit 016eb4a0) managed to
    unfix invalidate_inode_pages2().
    
    The problem is that various bits of code in the kernel can take transient refs
    on pages: the page scanner will do this when inspecting a batch of pages, and
    the lru_cache_add() batching pagevecs also hold a ref.
    
    Net result is transient failures in invalidate_inode_pages2().  This affects
    NFS directory invalidation (observed) and presumably also block-backed
    direct-io (not yet reported).
    
    Fix it by reverting invalidate_inode_pages2() back to the old version which
    ignores the page refcounts.
    
    We may come up with something more clever later, but for now we need a 2.6.18
    fix for NFS.
    
    Cc: Chuck Lever <cel@citi.umich.edu>
    Cc: Nick Piggin <nickpiggin@yahoo.com.au>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    a839df3c
truncate.c 10.6 KB