mm/mempolicy: return NULL if node is NUMA_NO_NODE in get_task_policy
authorJianguo Wu <wujianguo@huawei.com>
Wed, 11 Sep 2013 21:21:25 +0000 (14:21 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 11 Sep 2013 22:57:29 +0000 (15:57 -0700)
If node == NUMA_NO_NODE, pol is NULL, we should return NULL instead of
do "if (!pol->mode)" check.

[akpm@linux-foundation.org: reorganise code]
Signed-off-by: Jianguo Wu <wujianguo@huawei.com>
Cc: Mel Gorman <mgorman@suse.de>
Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Cc: Rik van Riel <riel@redhat.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: Hanjun Guo <guohanjun@huawei.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/mempolicy.c

index 6b1d426731ae75cd7f9d13f87342cdc9b335eef3..27022ca890f8edecfe2c5761cf6e22bb8eafe57c 100644 (file)
@@ -123,16 +123,19 @@ static struct mempolicy preferred_node_policy[MAX_NUMNODES];
 static struct mempolicy *get_task_policy(struct task_struct *p)
 {
        struct mempolicy *pol = p->mempolicy;
-       int node;
 
        if (!pol) {
-               node = numa_node_id();
-               if (node != NUMA_NO_NODE)
-                       pol = &preferred_node_policy[node];
+               int node = numa_node_id();
 
-               /* preferred_node_policy is not initialised early in boot */
-               if (!pol->mode)
-                       pol = NULL;
+               if (node != NUMA_NO_NODE) {
+                       pol = &preferred_node_policy[node];
+                       /*
+                        * preferred_node_policy is not initialised early in
+                        * boot
+                        */
+                       if (!pol->mode)
+                               pol = NULL;
+               }
        }
 
        return pol;