mirror of https://gitee.com/openkylin/linux.git
memcg swap: use mem_cgroup_uncharge_swap fix
Although mem_cgroup_uncharge_swap has an empty placeholder for !CONFIG_CGROUP_MEM_RES_CTLR_SWAP the definition is placed in the CONFIG_SWAP ifdef block so we are missing the same definition for !CONFIG_SWAP which implies !CONFIG_CGROUP_MEM_RES_CTLR_SWAP. This has not been an issue before, because mem_cgroup_uncharge_swap was not called from !CONFIG_SWAP context. But Hugh Dickins has a cleanup patch to call __mem_cgroup_commit_charge_swapin which is defined also for !CONFIG_SWAP. Let's move both the empty definition and declaration outside of the CONFIG_SWAP block to avoid the following compilation error: mm/memcontrol.c: In function '__mem_cgroup_commit_charge_swapin': mm/memcontrol.c:2837: error: implicit declaration of function 'mem_cgroup_uncharge_swap' if CONFIG_SWAP is disabled. Reported-by: David Rientjes <rientjes@google.com> Signed-off-by: Michal Hocko <mhocko@suse.cz> Cc: Hugh Dickins <hughd@google.com> Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Cc: Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp> Cc: Johannes Weiner <hannes@cmpxchg.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
6ede3d832a
commit
dac23b0d05
|
@ -305,6 +305,13 @@ static inline int mem_cgroup_swappiness(struct mem_cgroup *mem)
|
||||||
return vm_swappiness;
|
return vm_swappiness;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef CONFIG_CGROUP_MEM_RES_CTLR_SWAP
|
||||||
|
extern void mem_cgroup_uncharge_swap(swp_entry_t ent);
|
||||||
|
#else
|
||||||
|
static inline void mem_cgroup_uncharge_swap(swp_entry_t ent)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
#endif
|
||||||
#ifdef CONFIG_SWAP
|
#ifdef CONFIG_SWAP
|
||||||
/* linux/mm/page_io.c */
|
/* linux/mm/page_io.c */
|
||||||
extern int swap_readpage(struct page *);
|
extern int swap_readpage(struct page *);
|
||||||
|
@ -375,13 +382,6 @@ mem_cgroup_uncharge_swapcache(struct page *page, swp_entry_t ent, bool swapout)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_CGROUP_MEM_RES_CTLR_SWAP
|
|
||||||
extern void mem_cgroup_uncharge_swap(swp_entry_t ent);
|
|
||||||
#else
|
|
||||||
static inline void mem_cgroup_uncharge_swap(swp_entry_t ent)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#else /* CONFIG_SWAP */
|
#else /* CONFIG_SWAP */
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue