diff options
author | David Chinner <dgc@sgi.com> | 2006-03-21 20:47:40 -0500 |
---|---|---|
committer | Nathan Scott <nathans@sgi.com> | 2006-03-21 20:47:40 -0500 |
commit | 2ddee844eef48bf9240ebdfd6c5ffc4333c7d639 (patch) | |
tree | 16cc4c8b13d31b94f247b54d726cb3d191ce5f6d /fs/xfs/linux-2.6/xfs_aops.c | |
parent | 3758dee9f64fa9692063e7167128f9cec3f5fd33 (diff) |
[XFS] Check that a page has dirty buffers before finding it acceptable for
rewrite clustering. This prevents writing excessive amounts of clean data
when doing random rewrites of a cached file.
SGI-PV: 951193
SGI-Modid: xfs-linux-melb:xfs-kern:25531a
Signed-off-by: David Chinner <dgc@sgi.com>
Signed-off-by: Nathan Scott <nathans@sgi.com>
Diffstat (limited to 'fs/xfs/linux-2.6/xfs_aops.c')
-rw-r--r-- | fs/xfs/linux-2.6/xfs_aops.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/xfs/linux-2.6/xfs_aops.c b/fs/xfs/linux-2.6/xfs_aops.c index 965757cf15e9..97fc056130eb 100644 --- a/fs/xfs/linux-2.6/xfs_aops.c +++ b/fs/xfs/linux-2.6/xfs_aops.c | |||
@@ -647,7 +647,7 @@ xfs_is_delayed_page( | |||
647 | acceptable = (type == IOMAP_UNWRITTEN); | 647 | acceptable = (type == IOMAP_UNWRITTEN); |
648 | else if (buffer_delay(bh)) | 648 | else if (buffer_delay(bh)) |
649 | acceptable = (type == IOMAP_DELAY); | 649 | acceptable = (type == IOMAP_DELAY); |
650 | else if (buffer_mapped(bh)) | 650 | else if (buffer_dirty(bh) && buffer_mapped(bh)) |
651 | acceptable = (type == 0); | 651 | acceptable = (type == 0); |
652 | else | 652 | else |
653 | break; | 653 | break; |