mirror of https://gitee.com/openkylin/linux.git
mm, mempolicy: remove duplicate code
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>
This commit is contained in:
parent
6f6313d487
commit
212a0a6f28
|
@ -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 @@ alloc_pages_vma(gfp_t gfp, int order, struct vm_area_struct *vma,
|
|||
|
||||
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;
|
||||
|
|
Loading…
Reference in New Issue