|
@@ -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;
|