aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorEric Sandeen <sandeen@redhat.com>2010-10-27 21:30:03 -0400
committerTheodore Ts'o <tytso@mit.edu>2010-10-27 21:30:03 -0400
commitb443e7339aa08574d30b0819b344618459c76214 (patch)
tree3c89ccd60deee6184b5cc9cf2bbb78291952b047 /fs
parent659c6009ca2e3a01acc9881bafe5f55ef09c965b (diff)
ext4: don't bump up LONG_MAX nr_to_write by a factor of 8
I'm uneasy with lots of stuff going on in ext4_da_writepages(), but bumping nr_to_write from LLONG_MAX to -8 clearly isn't making anything better, so avoid the multiplier in that case. Signed-off-by: Eric Sandeen <sandeen@redhat.com> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Diffstat (limited to 'fs')
-rw-r--r--fs/ext4/inode.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index d88ba4a9effa..50f3bba68a25 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -3004,9 +3004,12 @@ static int ext4_da_writepages(struct address_space *mapping,
3004 * sbi->max_writeback_mb_bump whichever is smaller. 3004 * sbi->max_writeback_mb_bump whichever is smaller.
3005 */ 3005 */
3006 max_pages = sbi->s_max_writeback_mb_bump << (20 - PAGE_CACHE_SHIFT); 3006 max_pages = sbi->s_max_writeback_mb_bump << (20 - PAGE_CACHE_SHIFT);
3007 if (!range_cyclic && range_whole) 3007 if (!range_cyclic && range_whole) {
3008 desired_nr_to_write = wbc->nr_to_write * 8; 3008 if (wbc->nr_to_write == LONG_MAX)
3009 else 3009 desired_nr_to_write = wbc->nr_to_write;
3010 else
3011 desired_nr_to_write = wbc->nr_to_write * 8;
3012 } else
3010 desired_nr_to_write = ext4_num_dirty_pages(inode, index, 3013 desired_nr_to_write = ext4_num_dirty_pages(inode, index,
3011 max_pages); 3014 max_pages);
3012 if (desired_nr_to_write > max_pages) 3015 if (desired_nr_to_write > max_pages)