mm: memcontrol: avoid unused function warning
A bugfix in v4.8-rc2 introduced a harmless warning when
CONFIG_MEMCG_SWAP is disabled but CONFIG_MEMCG is enabled:
mm/memcontrol.c:4085:27: error: 'mem_cgroup_id_get_online' defined but not used [-Werror=unused-function]
static struct mem_cgroup *mem_cgroup_id_get_online(struct mem_cgroup *memcg)
This moves the function inside of the #ifdef block that hides the
calling function, to avoid the warning.
Fixes: 1f47b61fb4
("mm: memcontrol: fix swap counter leak on swapout from offline cgroup")
Link: http://lkml.kernel.org/r/20160824113733.2776701-1-arnd@arndb.de
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Michal Hocko <mhocko@suse.com>
Acked-by: Vladimir Davydov <vdavydov@virtuozzo.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Родитель
b32eaf71db
Коммит
358c07fcc3
|
@ -4082,24 +4082,6 @@ static void mem_cgroup_id_get_many(struct mem_cgroup *memcg, unsigned int n)
|
||||||
atomic_add(n, &memcg->id.ref);
|
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)
|
static void mem_cgroup_id_put_many(struct mem_cgroup *memcg, unsigned int n)
|
||||||
{
|
{
|
||||||
if (atomic_sub_and_test(n, &memcg->id.ref)) {
|
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);
|
subsys_initcall(mem_cgroup_init);
|
||||||
|
|
||||||
#ifdef CONFIG_MEMCG_SWAP
|
#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
|
* mem_cgroup_swapout - transfer a memsw charge to swap
|
||||||
* @page: page whose memsw charge to transfer
|
* @page: page whose memsw charge to transfer
|
||||||
|
|
Загрузка…
Ссылка в новой задаче