diff options
Diffstat (limited to 'mm/memcontrol.c')
| -rw-r--r-- | mm/memcontrol.c | 36 | 
1 files changed, 18 insertions, 18 deletions
diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 2ff0289ad061..9a6a51a7c416 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -4082,24 +4082,6 @@ static void mem_cgroup_id_get_many(struct mem_cgroup *memcg, unsigned int n)  	atomic_add(n, &memcg->id.ref);  } -static struct mem_cgroup *mem_cgroup_id_get_online(struct mem_cgroup *memcg) -{ -	while (!atomic_inc_not_zero(&memcg->id.ref)) { -		/* -		 * The root cgroup cannot be destroyed, so it's refcount must -		 * always be >= 1. -		 */ -		if (WARN_ON_ONCE(memcg == root_mem_cgroup)) { -			VM_BUG_ON(1); -			break; -		} -		memcg = parent_mem_cgroup(memcg); -		if (!memcg) -			memcg = root_mem_cgroup; -	} -	return memcg; -} -  static void mem_cgroup_id_put_many(struct mem_cgroup *memcg, unsigned int n)  {  	if (atomic_sub_and_test(n, &memcg->id.ref)) { @@ -5821,6 +5803,24 @@ static int __init mem_cgroup_init(void)  subsys_initcall(mem_cgroup_init);  #ifdef CONFIG_MEMCG_SWAP +static struct mem_cgroup *mem_cgroup_id_get_online(struct mem_cgroup *memcg) +{ +	while (!atomic_inc_not_zero(&memcg->id.ref)) { +		/* +		 * The root cgroup cannot be destroyed, so it's refcount must +		 * always be >= 1. +		 */ +		if (WARN_ON_ONCE(memcg == root_mem_cgroup)) { +			VM_BUG_ON(1); +			break; +		} +		memcg = parent_mem_cgroup(memcg); +		if (!memcg) +			memcg = root_mem_cgroup; +	} +	return memcg; +} +  /**   * mem_cgroup_swapout - transfer a memsw charge to swap   * @page: page whose memsw charge to transfer  |