diff options
Diffstat (limited to 'mm/hugetlb_cgroup.c')
-rw-r--r-- | mm/hugetlb_cgroup.c | 5 |
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 */ | ||
216 | void hugetlb_cgroup_commit_charge(int idx, unsigned long nr_pages, | 217 | void 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) | |||
389 | void hugetlb_cgroup_migrate(struct page *oldhpage, struct page *newhpage) | 388 | void 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; |