• H
    mm: remove worrying dead code from find_get_pages() · 9d8aa4ea
    Hugh Dickins 提交于
    The radix_tree_deref_retry() case in find_get_pages() has a strange little
    excrescence, not seen in the other gang lookups: it looks like the start
    of an abandoned attempt to guarantee forward progress in a case that
    cannot arise.
    
    ret should always be 0 here: if it isn't, then going back to restart will
    leak references to pages already gotten.  There used to be a comment
    saying nr_found is necessarily 1 here: that's not quite true, but the
    radix_tree_deref_retry() case is peculiar to the entry at index 0, when we
    race with it being moved out of the radix_tree root or back.
    
    Remove the worrisome two lines, add a brief comment here and in
    find_get_pages_contig() and find_get_pages_tag(), and a WARN_ON in
    find_get_pages() should it ever be seen elsewhere than at 0.
    Signed-off-by: NHugh Dickins <hughd@google.com>
    Cc: Nick Piggin <npiggin@kernel.dk>
    Acked-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Wu Fengguang <fengguang.wu@intel.com>
    Cc: Salman Qazi <sqazi@google.com>
    Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
    9d8aa4ea
filemap.c 69.4 KB