aboutsummaryrefslogtreecommitdiffstats
path: root/mm/memcontrol.c
diff options
context:
space:
mode:
authorKAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>2011-03-23 19:42:19 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2011-03-23 22:46:22 -0400
commit56039efa18f2530fc23e8ef19e716b65ee2a1d1e (patch)
treea61cbd2f760e93363657622de2cd1591db028458 /mm/memcontrol.c
parent6c191cd01a935e5b53ef43c9403c771bb7a32b60 (diff)
memcg: fix ugly initialization of return value is in caller
Remove initialization of vaiable in caller of memory cgroup function. Actually, it's return value of memcg function but it's initialized in caller. Some memory cgroup uses following style to bring the result of start function to the end function for avoiding races. mem_cgroup_start_A(&(*ptr)) /* Something very complicated can happen here. */ mem_cgroup_end_A(*ptr) In some calls, *ptr should be initialized to NULL be caller. But it's ugly. This patch fixes that *ptr is initialized by _start function. Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Acked-by: Johannes Weiner <hannes@cmpxchg.org> Acked-by: Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp> Cc: Balbir Singh <balbir@linux.vnet.ibm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/memcontrol.c')
-rw-r--r--mm/memcontrol.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index e1ee6ad9c971..b56bd74b486f 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -2475,7 +2475,7 @@ int mem_cgroup_cache_charge(struct page *page, struct mm_struct *mm,
2475 2475
2476 /* shmem */ 2476 /* shmem */
2477 if (PageSwapCache(page)) { 2477 if (PageSwapCache(page)) {
2478 struct mem_cgroup *mem = NULL; 2478 struct mem_cgroup *mem;
2479 2479
2480 ret = mem_cgroup_try_charge_swapin(mm, page, gfp_mask, &mem); 2480 ret = mem_cgroup_try_charge_swapin(mm, page, gfp_mask, &mem);
2481 if (!ret) 2481 if (!ret)
@@ -2501,6 +2501,8 @@ int mem_cgroup_try_charge_swapin(struct mm_struct *mm,
2501 struct mem_cgroup *mem; 2501 struct mem_cgroup *mem;
2502 int ret; 2502 int ret;
2503 2503
2504 *ptr = NULL;
2505
2504 if (mem_cgroup_disabled()) 2506 if (mem_cgroup_disabled())
2505 return 0; 2507 return 0;
2506 2508
@@ -2916,6 +2918,8 @@ int mem_cgroup_prepare_migration(struct page *page,
2916 enum charge_type ctype; 2918 enum charge_type ctype;
2917 int ret = 0; 2919 int ret = 0;
2918 2920
2921 *ptr = NULL;
2922
2919 VM_BUG_ON(PageTransHuge(page)); 2923 VM_BUG_ON(PageTransHuge(page));
2920 if (mem_cgroup_disabled()) 2924 if (mem_cgroup_disabled())
2921 return 0; 2925 return 0;
@@ -3058,7 +3062,7 @@ int mem_cgroup_shmem_charge_fallback(struct page *page,
3058 struct mm_struct *mm, 3062 struct mm_struct *mm,
3059 gfp_t gfp_mask) 3063 gfp_t gfp_mask)
3060{ 3064{
3061 struct mem_cgroup *mem = NULL; 3065 struct mem_cgroup *mem;
3062 int ret; 3066 int ret;
3063 3067
3064 if (mem_cgroup_disabled()) 3068 if (mem_cgroup_disabled())