]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
NTFS: In attrib.c::ntfs_attr_set() call balance_dirty_pages_ratelimited()
authorAnton Altaparmakov <aia21@cantab.net>
Tue, 11 Oct 2005 13:54:42 +0000 (14:54 +0100)
committerAnton Altaparmakov <aia21@cantab.net>
Tue, 11 Oct 2005 13:54:42 +0000 (14:54 +0100)
      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>
fs/ntfs/ChangeLog
fs/ntfs/attrib.c
fs/ntfs/malloc.h

index 9f4674a026f29ff7b4b84f073f17c79f882b632f..3b8ff2318085120bb939b5ff0444b3e61a3c8926 100644 (file)
@@ -57,6 +57,10 @@ ToDo/Notes:
          uncompressed and unencrypted files are supported.  Also, there is
          only very limited support for highly fragmented files (the ones whose
          $DATA attribute is split into multiple attribute extents).
+       - 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.
 
 2.1.24 - Lots of bug fixes and support more clean journal states.
 
index bc25e88ad468edc03561c033c3338c6e3b513a56..338e47144fc950e049fb13b855f3e759e95a1743 100644 (file)
@@ -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) {
index 590887b943f511ca964bc1c4cd30dc4cf7e0b0fd..e38e402e410351c6a70ff9ae148f10133ee28177 100644 (file)
@@ -39,8 +39,7 @@
  * If there was insufficient memory to complete the request, return NULL.
  * Depending on @gfp_mask the allocation may be guaranteed to succeed.
  */
-static inline void *__ntfs_malloc(unsigned long size,
-               gfp_t gfp_mask)
+static inline void *__ntfs_malloc(unsigned long size, gfp_t gfp_mask)
 {
        if (likely(size <= PAGE_SIZE)) {
                BUG_ON(!size);