Btrfs: properly honor wbc->nr_to_write changes
authorChris Mason <chris.mason@oracle.com>
Fri, 18 Sep 2009 20:03:16 +0000 (16:03 -0400)
committerChris Mason <chris.mason@oracle.com>
Fri, 18 Sep 2009 20:08:46 +0000 (16:08 -0400)
commitf85d7d6c8f2ad4a86a1f4f4e3791f36dede2fa76
tree40538328090b5eb2f3f95a9bc5a290c83384ff43
parent11833d66be94b514652466802100378046c16b72
Btrfs: properly honor wbc->nr_to_write changes

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: Chris Mason <chris.mason@oracle.com>
fs/btrfs/extent_io.c