unsigned long addr, int node)
 {
        struct mempolicy *pol;
-       struct zonelist *zl;
        struct page *page;
        unsigned int cpuset_mems_cookie;
 
 
                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;