mm, mempolicy: remove duplicate code
authorDavid Rientjes <rientjes@google.com>
Wed, 12 Dec 2012 00:02:51 +0000 (16:02 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 12 Dec 2012 01:22:27 +0000 (17:22 -0800)
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>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/mempolicy.c

index 4ea600d..05b2836 100644 (file)
@@ -1907,7 +1907,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;
 
@@ -1926,23 +1925,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;