[PATCH -mm] cpuset,mm: fix no node to alloc memory when changingcpuset's mems - fix2
From: Miao Xie
Date: Wed May 12 2010 - 03:19:36 EST
- cleanup unnecessary header file
- fix the race between set_mempolicy() and cpuset_change_task_nodemask()
Signed-off-by: Miao Xie <miaox@xxxxxxxxxxxxxx>
---
kernel/cpuset.c | 3 +--
kernel/exit.c | 1 -
kernel/fork.c | 1 -
3 files changed, 1 insertions(+), 4 deletions(-)
diff --git a/kernel/cpuset.c b/kernel/cpuset.c
index 30cb9a2..d243a22 100644
--- a/kernel/cpuset.c
+++ b/kernel/cpuset.c
@@ -963,7 +963,6 @@ repeat:
task_lock(tsk);
nodes_or(tsk->mems_allowed, tsk->mems_allowed, *newmems);
mpol_rebind_task(tsk, newmems, MPOL_REBIND_STEP1);
- task_unlock(tsk);
/*
@@ -985,6 +984,7 @@ repeat:
* for the read-side.
*/
while (ACCESS_ONCE(tsk->mems_allowed_change_disable)) {
+ task_unlock(tsk);
if (!task_curr(tsk))
yield();
goto repeat;
@@ -999,7 +999,6 @@ repeat:
*/
smp_mb();
- task_lock(tsk);
mpol_rebind_task(tsk, newmems, MPOL_REBIND_STEP2);
tsk->mems_allowed = *newmems;
task_unlock(tsk);
diff --git a/kernel/exit.c b/kernel/exit.c
index 41bc5b2..0ecb17b 100644
--- a/kernel/exit.c
+++ b/kernel/exit.c
@@ -16,7 +16,6 @@
#include <linux/key.h>
#include <linux/security.h>
#include <linux/cpu.h>
-#include <linux/cpuset.h>
#include <linux/acct.h>
#include <linux/tsacct_kern.h>
#include <linux/file.h>
diff --git a/kernel/fork.c b/kernel/fork.c
index 6e87c95..f4f0951 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -31,7 +31,6 @@
#include <linux/nsproxy.h>
#include <linux/capability.h>
#include <linux/cpu.h>
-#include <linux/cpuset.h>
#include <linux/cgroup.h>
#include <linux/security.h>
#include <linux/hugetlb.h>
--
1.6.5.2
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/