diff options
| author | Andrew Morton <akpm@osdl.org> | 2004-01-19 05:16:24 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@home.osdl.org> | 2004-01-19 05:16:24 -0800 |
| commit | f69c2d56ee9af07879729540bbafecfef902234c (patch) | |
| tree | acc360159f2674c1045d38cace8bfd8b8ff50b6d | |
| parent | e94aaae6838c12465875c79853f42d38240cf3db (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.c | 2 | ||||
| -rw-r--r-- | mm/page-writeback.c | 1 |
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 |
