aboutsummaryrefslogtreecommitdiffstats
path: root/mm/hugetlb_cgroup.c
diff options
context:
space:
mode:
Diffstat (limited to 'mm/hugetlb_cgroup.c')
-rw-r--r--mm/hugetlb_cgroup.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/mm/hugetlb_cgroup.c b/mm/hugetlb_cgroup.c
index 680e4819e077..9834a01c79dc 100644
--- a/mm/hugetlb_cgroup.c
+++ b/mm/hugetlb_cgroup.c
@@ -213,6 +213,7 @@ done:
213 return ret; 213 return ret;
214} 214}
215 215
216/* Should be called with hugetlb_lock held */
216void hugetlb_cgroup_commit_charge(int idx, unsigned long nr_pages, 217void hugetlb_cgroup_commit_charge(int idx, unsigned long nr_pages,
217 struct hugetlb_cgroup *h_cg, 218 struct hugetlb_cgroup *h_cg,
218 struct page *page) 219 struct page *page)
@@ -220,9 +221,7 @@ void hugetlb_cgroup_commit_charge(int idx, unsigned long nr_pages,
220 if (hugetlb_cgroup_disabled() || !h_cg) 221 if (hugetlb_cgroup_disabled() || !h_cg)
221 return; 222 return;
222 223
223 spin_lock(&hugetlb_lock);
224 set_hugetlb_cgroup(page, h_cg); 224 set_hugetlb_cgroup(page, h_cg);
225 spin_unlock(&hugetlb_lock);
226 return; 225 return;
227} 226}
228 227
@@ -389,6 +388,7 @@ int __init hugetlb_cgroup_file_init(int idx)
389void hugetlb_cgroup_migrate(struct page *oldhpage, struct page *newhpage) 388void hugetlb_cgroup_migrate(struct page *oldhpage, struct page *newhpage)
390{ 389{
391 struct hugetlb_cgroup *h_cg; 390 struct hugetlb_cgroup *h_cg;
391 struct hstate *h = page_hstate(oldhpage);
392 392
393 if (hugetlb_cgroup_disabled()) 393 if (hugetlb_cgroup_disabled())
394 return; 394 return;
@@ -401,6 +401,7 @@ void hugetlb_cgroup_migrate(struct page *oldhpage, struct page *newhpage)
401 401
402 /* move the h_cg details to new cgroup */ 402 /* move the h_cg details to new cgroup */
403 set_hugetlb_cgroup(newhpage, h_cg); 403 set_hugetlb_cgroup(newhpage, h_cg);
404 list_move(&newhpage->lru, &h->hugepage_activelist);
404 spin_unlock(&hugetlb_lock); 405 spin_unlock(&hugetlb_lock);
405 cgroup_release_and_wakeup_rmdir(&h_cg->css); 406 cgroup_release_and_wakeup_rmdir(&h_cg->css);
406 return; 407 return;