Commit 2faf2e19 authored by Richard Kennedy's avatar Richard Kennedy Committed by Theodore Ts'o

ext4: return correct wbc.nr_to_write in ext4_da_writepages

When ext4_da_writepages increases the nr_to_write in writeback_control
then it must always re-base the return value.  Originally there was a
(misguided) attempt prevent wbc.nr_to_write from going negative.  In
fact, it's necessary to allow nr_to_write to be negative so that
wb_writeback() can correctly calculate how many pages were actually
written.  
Signed-off-by: default avatarRichard Kennedy <richard@rsk.demon.co.uk>
Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
parent 6d3b82f2
...@@ -2967,8 +2967,7 @@ static int ext4_da_writepages(struct address_space *mapping, ...@@ -2967,8 +2967,7 @@ static int ext4_da_writepages(struct address_space *mapping,
out_writepages: out_writepages:
if (!no_nrwrite_index_update) if (!no_nrwrite_index_update)
wbc->no_nrwrite_index_update = 0; wbc->no_nrwrite_index_update = 0;
if (wbc->nr_to_write > nr_to_writebump) wbc->nr_to_write -= nr_to_writebump;
wbc->nr_to_write -= nr_to_writebump;
wbc->range_start = range_start; wbc->range_start = range_start;
trace_ext4_da_writepages_result(inode, wbc, ret, pages_written); trace_ext4_da_writepages_result(inode, wbc, ret, pages_written);
return ret; return ret;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment