diff options
author | Joonsoo Kim <iamjoonsoo.kim@lge.com> | 2013-09-11 17:20:58 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-09-11 18:57:26 -0400 |
commit | 81a6fcae3ff3f6af1c9d7e31499e68fda2b3f58d (patch) | |
tree | 71402d7b6a4d9639aaff089c96918f95618776e7 /mm | |
parent | c748c26294600d7e4f0d1f2f61449d3a740f102f (diff) |
mm, hugetlb: clean-up alloc_huge_page()
Unify successful allocation paths to make the code more readable. There
are no functional changes.
Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Acked-by: Michal Hocko <mhocko@suse.cz>
Reviewed-by: Wanpeng Li <liwanp@linux.vnet.ibm.com>
Reviewed-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Cc: Hillf Danton <dhillf@gmail.com>
Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Cc: Wanpeng Li <liwanp@linux.vnet.ibm.com>
Cc: Rik van Riel <riel@redhat.com>
Cc: Mel Gorman <mgorman@suse.de>
Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: Davidlohr Bueso <davidlohr.bueso@hp.com>
Cc: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm')
-rw-r--r-- | mm/hugetlb.c | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/mm/hugetlb.c b/mm/hugetlb.c index bfca1b00b09b..a698d40d1c3e 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c | |||
@@ -1166,12 +1166,7 @@ static struct page *alloc_huge_page(struct vm_area_struct *vma, | |||
1166 | } | 1166 | } |
1167 | spin_lock(&hugetlb_lock); | 1167 | spin_lock(&hugetlb_lock); |
1168 | page = dequeue_huge_page_vma(h, vma, addr, avoid_reserve); | 1168 | page = dequeue_huge_page_vma(h, vma, addr, avoid_reserve); |
1169 | if (page) { | 1169 | if (!page) { |
1170 | /* update page cgroup details */ | ||
1171 | hugetlb_cgroup_commit_charge(idx, pages_per_huge_page(h), | ||
1172 | h_cg, page); | ||
1173 | spin_unlock(&hugetlb_lock); | ||
1174 | } else { | ||
1175 | spin_unlock(&hugetlb_lock); | 1170 | spin_unlock(&hugetlb_lock); |
1176 | page = alloc_buddy_huge_page(h, NUMA_NO_NODE); | 1171 | page = alloc_buddy_huge_page(h, NUMA_NO_NODE); |
1177 | if (!page) { | 1172 | if (!page) { |
@@ -1182,11 +1177,11 @@ static struct page *alloc_huge_page(struct vm_area_struct *vma, | |||
1182 | return ERR_PTR(-ENOSPC); | 1177 | return ERR_PTR(-ENOSPC); |
1183 | } | 1178 | } |
1184 | spin_lock(&hugetlb_lock); | 1179 | spin_lock(&hugetlb_lock); |
1185 | hugetlb_cgroup_commit_charge(idx, pages_per_huge_page(h), | ||
1186 | h_cg, page); | ||
1187 | list_move(&page->lru, &h->hugepage_activelist); | 1180 | list_move(&page->lru, &h->hugepage_activelist); |
1188 | spin_unlock(&hugetlb_lock); | 1181 | /* Fall through */ |
1189 | } | 1182 | } |
1183 | hugetlb_cgroup_commit_charge(idx, pages_per_huge_page(h), h_cg, page); | ||
1184 | spin_unlock(&hugetlb_lock); | ||
1190 | 1185 | ||
1191 | set_page_private(page, (unsigned long)spool); | 1186 | set_page_private(page, (unsigned long)spool); |
1192 | 1187 | ||