aboutsummaryrefslogtreecommitdiffstats
path: root/mm
diff options
context:
space:
mode:
authorJoonsoo Kim <iamjoonsoo.kim@lge.com>2013-09-11 17:20:58 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2013-09-11 18:57:26 -0400
commit81a6fcae3ff3f6af1c9d7e31499e68fda2b3f58d (patch)
tree71402d7b6a4d9639aaff089c96918f95618776e7 /mm
parentc748c26294600d7e4f0d1f2f61449d3a740f102f (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.c13
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