• Andrew Morton's avatar
    [PATCH] invalidate_inode_pages2(): ignore page refcounts · bd4c8ce4
    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>
    Cc: <stable@kernel.org>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    bd4c8ce4
truncate.c 11.2 KB