aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-01-10 19:59:59 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2012-01-10 19:59:59 -0500
commit001a541ea9163ace5e8243ee0e907ad80a4c0ec2 (patch)
treea76225046369c440de93739add9823f5ea060245 /kernel
parent40ba587923ae67090d9f141c1d3c951be5c1420e (diff)
parentbc31b86a5923fad5f3fbb6192f767f410241ba27 (diff)
Merge branch 'writeback-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux
* 'writeback-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux: writeback: move MIN_WRITEBACK_PAGES to fs-writeback.c writeback: balanced_rate cannot exceed write bandwidth writeback: do strict bdi dirty_exceeded writeback: avoid tiny dirty poll intervals writeback: max, min and target dirty pause time writeback: dirty ratelimit - think time compensation btrfs: fix dirtied pages accounting on sub-page writes writeback: fix dirtied pages accounting on redirty writeback: fix dirtied pages accounting on sub-page writes writeback: charge leaked page dirties to active tasks writeback: Include all dirty inodes in background writeback
Diffstat (limited to 'kernel')
-rw-r--r--kernel/exit.c3
-rw-r--r--kernel/fork.c1
2 files changed, 4 insertions, 0 deletions
diff --git a/kernel/exit.c b/kernel/exit.c
index d9eab2e4b430..94ed6e20bb53 100644
--- a/kernel/exit.c
+++ b/kernel/exit.c
@@ -51,6 +51,7 @@
51#include <trace/events/sched.h> 51#include <trace/events/sched.h>
52#include <linux/hw_breakpoint.h> 52#include <linux/hw_breakpoint.h>
53#include <linux/oom.h> 53#include <linux/oom.h>
54#include <linux/writeback.h>
54 55
55#include <asm/uaccess.h> 56#include <asm/uaccess.h>
56#include <asm/unistd.h> 57#include <asm/unistd.h>
@@ -1035,6 +1036,8 @@ NORET_TYPE void do_exit(long code)
1035 validate_creds_for_do_exit(tsk); 1036 validate_creds_for_do_exit(tsk);
1036 1037
1037 preempt_disable(); 1038 preempt_disable();
1039 if (tsk->nr_dirtied)
1040 __this_cpu_add(dirty_throttle_leaks, tsk->nr_dirtied);
1038 exit_rcu(); 1041 exit_rcu();
1039 /* causes final put_task_struct in finish_task_switch(). */ 1042 /* causes final put_task_struct in finish_task_switch(). */
1040 tsk->state = TASK_DEAD; 1043 tsk->state = TASK_DEAD;
diff --git a/kernel/fork.c b/kernel/fork.c
index 5e1391b5ade0..443f5125f11e 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -1294,6 +1294,7 @@ static struct task_struct *copy_process(unsigned long clone_flags,
1294 1294
1295 p->nr_dirtied = 0; 1295 p->nr_dirtied = 0;
1296 p->nr_dirtied_pause = 128 >> (PAGE_SHIFT - 10); 1296 p->nr_dirtied_pause = 128 >> (PAGE_SHIFT - 10);
1297 p->dirty_paused_when = 0;
1297 1298
1298 /* 1299 /*
1299 * Ok, make it visible to the rest of the system. 1300 * Ok, make it visible to the rest of the system.