diff options
author | David Rientjes <rientjes@google.com> | 2012-12-11 16:02:51 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-12-11 17:22:27 -0800 |
commit | 212a0a6f28dda0a1e732d20d57abb465750d473c (patch) | |
tree | 0a6bf85ca746d0e3a4001f3905c0ecd2dcbc0b89 /mm/mempolicy.c | |
parent | 6f6313d4870f9642cb3ea8ec892cf6da81331b9c (diff) | |
download | op-kernel-dev-212a0a6f28dda0a1e732d20d57abb465750d473c.zip op-kernel-dev-212a0a6f28dda0a1e732d20d57abb465750d473c.tar.gz |
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>
Diffstat (limited to 'mm/mempolicy.c')
-rw-r--r-- | mm/mempolicy.c | 21 |
1 files changed, 4 insertions, 17 deletions
diff --git a/mm/mempolicy.c b/mm/mempolicy.c index 4ea600d..05b2836 100644 --- a/mm/mempolicy.c +++ b/mm/mempolicy.c @@ -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; |