]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
mm, mempolicy: remove duplicate code
authorDavid Rientjes <rientjes@google.com>
Fri, 9 Nov 2012 03:04:29 +0000 (14:04 +1100)
committerStephen Rothwell <sfr@canb.auug.org.au>
Mon, 12 Nov 2012 04:17:10 +0000 (15:17 +1100)
Remove some duplicate code and simplify alloc_pages_vma().  No functional
change.

Signed-off-by: David Rientjes <rientjes@google.com>
Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/mempolicy.c

index 1ac0479e85a350f7f521a2e53743714c6411ae2b..a40e0d2a3fab8d319b81906a465678b327821097 100644 (file)
@@ -1942,7 +1942,6 @@ alloc_pages_vma(gfp_t gfp, int order, struct vm_area_struct *vma,
                unsigned long addr, int node)
 {
        struct mempolicy *pol;
-       struct zonelist *zl;
        struct page *page;
        unsigned int cpuset_mems_cookie;
 
@@ -1961,23 +1960,11 @@ retry_cpuset:
 
                return page;
        }
-       zl = policy_zonelist(gfp, pol, node);
-       if (unlikely(mpol_needs_cond_ref(pol))) {
-               /*
-                * slow path: ref counted shared policy
-                */
-               struct page *page =  __alloc_pages_nodemask(gfp, order,
-                                               zl, policy_nodemask(gfp, pol));
-               __mpol_put(pol);
-               if (unlikely(!put_mems_allowed(cpuset_mems_cookie) && !page))
-                       goto retry_cpuset;
-               return page;
-       }
-       /*
-        * fast path:  default or task policy
-        */
-       page = __alloc_pages_nodemask(gfp, order, zl,
+       page = __alloc_pages_nodemask(gfp, order,
+                                     policy_zonelist(gfp, pol, node),
                                      policy_nodemask(gfp, pol));
+       if (unlikely(mpol_needs_cond_ref(pol)))
+               __mpol_put(pol);
        if (unlikely(!put_mems_allowed(cpuset_mems_cookie) && !page))
                goto retry_cpuset;
        return page;