• Nick Piggin's avatar
    mm: lockless pagecache · a60637c8
    Nick Piggin authored
    Combine page_cache_get_speculative with lockless radix tree lookups to
    introduce lockless page cache lookups (ie.  no mapping->tree_lock on the
    read-side).
    
    The only atomicity changes this introduces is that the gang pagecache
    lookup functions now behave as if they are implemented with multiple
    find_get_page calls, rather than operating on a snapshot of the pages.  In
    practice, this atomicity guarantee is not used anyway, and it is to
    replace individual lookups, so these semantics are natural.
    Signed-off-by: default avatarNick Piggin <npiggin@suse.de>
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Hugh Dickins <hugh@veritas.com>
    Cc: "Paul E. McKenney" <paulmck@us.ibm.com>
    Reviewed-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    a60637c8
filemap.c 69.7 KB