diff options
author | Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> | 2012-07-31 19:42:36 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-07-31 21:42:41 -0400 |
commit | 75754681fe79b84dde1048470a44eeb64192fad6 (patch) | |
tree | 70951e240cf1f5f6e7e9b6cb8c0626f3b5ffcfba /mm/hugetlb_cgroup.c | |
parent | 94ae8ba7176666d1e7d8bbb9f93670a27540b6a8 (diff) |
hugetlb/cgroup: remove exclude and wakeup rmdir calls from migrate
We already hold the hugetlb_lock. That should prevent a parallel cgroup
rmdir from touching page's hugetlb cgroup. So remove the exclude and
wakeup calls.
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Reviewed-by: Michal Hocko <mhocko@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/hugetlb_cgroup.c')
-rw-r--r-- | mm/hugetlb_cgroup.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/mm/hugetlb_cgroup.c b/mm/hugetlb_cgroup.c index 9834a01c79dc..a3f358fb8a0c 100644 --- a/mm/hugetlb_cgroup.c +++ b/mm/hugetlb_cgroup.c | |||
@@ -385,6 +385,10 @@ int __init hugetlb_cgroup_file_init(int idx) | |||
385 | return 0; | 385 | return 0; |
386 | } | 386 | } |
387 | 387 | ||
388 | /* | ||
389 | * hugetlb_lock will make sure a parallel cgroup rmdir won't happen | ||
390 | * when we migrate hugepages | ||
391 | */ | ||
388 | void hugetlb_cgroup_migrate(struct page *oldhpage, struct page *newhpage) | 392 | void hugetlb_cgroup_migrate(struct page *oldhpage, struct page *newhpage) |
389 | { | 393 | { |
390 | struct hugetlb_cgroup *h_cg; | 394 | struct hugetlb_cgroup *h_cg; |
@@ -397,13 +401,11 @@ void hugetlb_cgroup_migrate(struct page *oldhpage, struct page *newhpage) | |||
397 | spin_lock(&hugetlb_lock); | 401 | spin_lock(&hugetlb_lock); |
398 | h_cg = hugetlb_cgroup_from_page(oldhpage); | 402 | h_cg = hugetlb_cgroup_from_page(oldhpage); |
399 | set_hugetlb_cgroup(oldhpage, NULL); | 403 | set_hugetlb_cgroup(oldhpage, NULL); |
400 | cgroup_exclude_rmdir(&h_cg->css); | ||
401 | 404 | ||
402 | /* move the h_cg details to new cgroup */ | 405 | /* move the h_cg details to new cgroup */ |
403 | set_hugetlb_cgroup(newhpage, h_cg); | 406 | set_hugetlb_cgroup(newhpage, h_cg); |
404 | list_move(&newhpage->lru, &h->hugepage_activelist); | 407 | list_move(&newhpage->lru, &h->hugepage_activelist); |
405 | spin_unlock(&hugetlb_lock); | 408 | spin_unlock(&hugetlb_lock); |
406 | cgroup_release_and_wakeup_rmdir(&h_cg->css); | ||
407 | return; | 409 | return; |
408 | } | 410 | } |
409 | 411 | ||