summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Morton <akpm@osdl.org>2004-01-19 05:16:24 -0800
committerLinus Torvalds <torvalds@home.osdl.org>2004-01-19 05:16:24 -0800
commitf69c2d56ee9af07879729540bbafecfef902234c (patch)
treeacc360159f2674c1045d38cace8bfd8b8ff50b6d
parente94aaae6838c12465875c79853f42d38240cf3db (diff)
[PATCH] reiserfs v3 should throttle writers
From: Chris Mason <mason@suse.com> The v3 reiserfs_file_write func doesn't do any write throttling, which leads to a variety of problems. Here's a patch that makes reiserfs_file_write call balance_dirty_pages_ratelimited, and exports that func for module usage.
-rw-r--r--fs/reiserfs/file.c2
-rw-r--r--mm/page-writeback.c1
2 files changed, 3 insertions, 0 deletions
diff --git a/fs/reiserfs/file.c b/fs/reiserfs/file.c
index 572b30f3f417..5d326d6445a5 100644
--- a/fs/reiserfs/file.c
+++ b/fs/reiserfs/file.c
@@ -8,6 +8,7 @@
#include <linux/smp_lock.h>
#include <asm/uaccess.h>
#include <linux/pagemap.h>
+#include <linux/writeback.h>
/*
** We pack the tails of files on file close, not at the time they are written.
@@ -1176,6 +1177,7 @@ ssize_t reiserfs_file_write( struct file *file, /* the file we are going to writ
buf += write_bytes;
*ppos = pos += write_bytes;
count -= write_bytes;
+ balance_dirty_pages_ratelimited(inode->i_mapping);
}
if ((file->f_flags & O_SYNC) || IS_SYNC(inode))
diff --git a/mm/page-writeback.c b/mm/page-writeback.c
index 052b2201eb6d..1ad6717ade97 100644
--- a/mm/page-writeback.c
+++ b/mm/page-writeback.c
@@ -233,6 +233,7 @@ void balance_dirty_pages_ratelimited(struct address_space *mapping)
}
put_cpu_var(ratelimits);
}
+EXPORT_SYMBOL(balance_dirty_pages_ratelimited);
/*
* writeback at least _min_pages, and keep writing until the amount of dirty