• Nick Piggin's avatar
    mm: write_cache_pages early loop termination · bd19e012
    Nick Piggin authored
    We'd like to break out of the loop early in many situations, however the
    existing code has been setting mapping->writeback_index past the final
    page in the pagevec lookup for cyclic writeback.  This is a problem if we
    don't process all pages up to the final page.
    
    Currently the code mostly keeps writeback_index reasonable and hacked
    around this by not breaking out of the loop or writing pages outside the
    range in these cases.  Keep track of a real "done index" that enables us
    to terminate the loop in a much more flexible manner.
    
    Needed by the subsequent patch to preserve writepage errors, and then
    further patches to break out of the loop early for other reasons.  However
    there are no functional changes with this patch alone.
    Signed-off-by: default avatarNick Piggin <npiggin@suse.de>
    Cc: Chris Mason <chris.mason@oracle.com>
    Cc: Dave Chinner <david@fromorbit.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    bd19e012
page-writeback.c 36.7 KB