• Chris Mason's avatar
    Btrfs: properly honor wbc->nr_to_write changes · f85d7d6c
    Chris Mason authored
    When btrfs fills a delayed allocation, it tries to increase
    the wbc nr_to_write to cover a big part of allocation.  The
    theory is that we're doing contiguous IO and writing a few
    more blocks will save seeks overall at a very low cost.
    
    The problem is that extent_write_cache_pages could ignore
    the new higher nr_to_write if nr_to_write had already gone
    down to zero.  We fix that by rechecking the nr_to_write
    for every page that is processed in the pagevec.
    
    This updates the math around bumping the nr_to_write value
    to make sure we don't leave a tiny amount of IO hanging
    around for the very end of a new extent.
    Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
    f85d7d6c
extent_io.c 92.2 KB