Files
ack-tegra/include/linux
Eric Sandeen 5b41d92437 ext4: implement writeback livelock avoidance using page tagging
This is analogous to Jan Kara's commit,
f446daaea9
mm: implement writeback livelock avoidance using page tagging

but since we forked write_cache_pages, we need to reimplement
it there (and in ext4_da_writepages, since range_cyclic handling
was moved to there)

If you start a large buffered IO to a file, and then set
fsync after it, you'll find that fsync does not complete
until the other IO stops.

If you continue re-dirtying the file (say, putting dd
with conv=notrunc in a loop), when fsync finally completes
(after all IO is done), it reports via tracing that
it has written many more pages than the file contains;
in other words it has synced and re-synced pages in
the file multiple times.

This then leads to problems with our writeback_index
update, since it advances it by pages written, and
essentially sets writeback_index off the end of the
file...

With the following patch, we only sync as much as was
dirty at the time of the sync.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2010-10-27 21:30:13 -04:00
..
2010-08-05 13:26:20 +01:00
2010-08-12 06:38:24 +10:00
2010-09-08 10:50:00 -06:00
2010-08-12 08:43:30 -07:00
2010-08-12 08:43:30 -07:00
2010-08-18 01:09:01 -04:00
2010-09-09 18:57:23 -07:00
2010-08-06 15:36:47 -05:00
2010-08-04 11:00:45 +02:00
2010-08-12 04:14:05 +01:00
2010-08-18 08:35:46 -04:00
2010-10-27 21:30:11 -04:00
2010-08-11 09:23:22 +02:00
2010-08-11 18:21:02 +02:00
2010-08-09 20:45:05 -07:00
2010-08-10 11:49:21 -07:00
2010-08-12 11:27:58 +02:00
2010-09-09 18:57:24 -07:00
2010-08-02 06:39:44 +03:00
2010-08-01 10:47:00 +03:00
2010-08-09 16:48:45 -04:00
2010-09-09 09:05:06 -07:00
2010-08-11 00:29:47 -04:00
2010-07-31 19:53:06 +08:00
2010-08-04 21:53:17 -07:00
2010-08-09 16:47:27 -04:00
2010-07-22 13:46:21 -07:00
2010-07-23 17:08:41 +04:00
2010-09-08 15:04:10 +02:00
2010-09-27 20:24:54 -07:00
2010-08-09 16:48:44 -04:00
2010-08-18 08:35:47 -04:00
2010-08-06 10:37:02 -04:00
2010-08-11 08:59:02 -07:00
2010-09-13 10:26:52 +02:00