Btrfs: don't return congestion in write_cache_pages as often
authorChris Mason <chris.mason@oracle.com>
Wed, 4 Feb 2009 14:33:00 +0000 (09:33 -0500)
committerChris Mason <chris.mason@oracle.com>
Wed, 4 Feb 2009 14:33:00 +0000 (09:33 -0500)
On fast devices that go from congested to uncongested very quickly, pdflush
is waiting too often in congestion_wait, and the FS is backing off to
easily in write_cache_pages.

For now, fix this on the btrfs side by only checking congestion after
some bios have already gone down.  Longer term a real fix is needed
for pdflush, but that is a larger project.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
fs/btrfs/extent_io.c

index dd5df53e045a1d5818aaa22ec831784a5d911040..37d43b516b79bdb7cb64dd153a06a805be59dd94 100644 (file)
@@ -2377,11 +2377,6 @@ static int extent_write_cache_pages(struct extent_io_tree *tree,
        int scanned = 0;
        int range_whole = 0;
 
-       if (wbc->nonblocking && bdi_write_congested(bdi)) {
-               wbc->encountered_congestion = 1;
-               return 0;
-       }
-
        pagevec_init(&pvec, 0);
        if (wbc->range_cyclic) {
                index = mapping->writeback_index; /* Start from prev offset */