diff options
author | Anton Altaparmakov <aia21@cantab.net> | 2005-10-11 14:54:42 +0100 |
---|---|---|
committer | Anton Altaparmakov <aia21@cantab.net> | 2005-10-11 14:54:42 +0100 |
commit | 29b8990513b077dc388b0756acd31465e5c21441 (patch) | |
tree | b7de34b7cf3c33d99af1579433f7e2b66a4cd37f /fs/ntfs/attrib.c | |
parent | 29d8699ebb1e8948a612306c69e6d9c4ef23342f (diff) | |
download | linux-29b8990513b077dc388b0756acd31465e5c21441.tar.gz linux-29b8990513b077dc388b0756acd31465e5c21441.tar.bz2 linux-29b8990513b077dc388b0756acd31465e5c21441.zip |
NTFS: In attrib.c::ntfs_attr_set() call balance_dirty_pages_ratelimited()
and cond_resched() in the main loop as we could be dirtying a lot of
pages and this ensures we play nice with the VM and the system as a
whole.
Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
Diffstat (limited to 'fs/ntfs/attrib.c')
-rw-r--r-- | fs/ntfs/attrib.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/ntfs/attrib.c b/fs/ntfs/attrib.c index bc25e88ad468..338e47144fc9 100644 --- a/fs/ntfs/attrib.c +++ b/fs/ntfs/attrib.c @@ -21,7 +21,9 @@ */ #include <linux/buffer_head.h> +#include <linux/sched.h> #include <linux/swap.h> +#include <linux/writeback.h> #include "attrib.h" #include "debug.h" @@ -2590,6 +2592,8 @@ int ntfs_attr_set(ntfs_inode *ni, const s64 ofs, const s64 cnt, const u8 val) /* Finally unlock and release the page. */ unlock_page(page); page_cache_release(page); + balance_dirty_pages_ratelimited(mapping); + cond_resched(); } /* If there is a last partial page, need to do it the slow way. */ if (end_ofs) { |