From: David Rientjes Inline functions must preceed their use, so mm_cgroup() should be defined in linux/memcontrol.h. include/linux/memcontrol.h:48: warning: 'mm_cgroup' declared inline after being called include/linux/memcontrol.h:48: warning: previous declaration of 'mm_cgroup' was here Cc: Balbir Singh Signed-off-by: David Rientjes Signed-off-by: Andrew Morton --- include/linux/memcontrol.h | 8 ++++++-- mm/memcontrol.c | 5 ----- 2 files changed, 6 insertions(+), 7 deletions(-) diff -puN include/linux/memcontrol.h~memcontrol-move-mm_cgroup-to-header-file include/linux/memcontrol.h --- a/include/linux/memcontrol.h~memcontrol-move-mm_cgroup-to-header-file +++ a/include/linux/memcontrol.h @@ -45,7 +45,11 @@ extern unsigned long mem_cgroup_isolate_ extern void mem_cgroup_out_of_memory(struct mem_cgroup *mem, gfp_t gfp_mask); extern int mem_cgroup_cache_charge(struct page *page, struct mm_struct *mm, gfp_t gfp_mask); -extern struct mem_cgroup *mm_cgroup(struct mm_struct *mm); + +static inline struct mem_cgroup *mm_cgroup(const struct mm_struct *mm) +{ + return rcu_dereference(mm->mem_cgroup); +} static inline void mem_cgroup_uncharge_page(struct page *page) { @@ -98,7 +102,7 @@ static inline int mem_cgroup_cache_charg return 0; } -static inline struct mem_cgroup *mm_cgroup(struct mm_struct *mm) +static inline struct mem_cgroup *mm_cgroup(const struct mm_struct *mm) { return NULL; } diff -puN mm/memcontrol.c~memcontrol-move-mm_cgroup-to-header-file mm/memcontrol.c --- a/mm/memcontrol.c~memcontrol-move-mm_cgroup-to-header-file +++ a/mm/memcontrol.c @@ -110,11 +110,6 @@ struct mem_cgroup *mem_cgroup_from_task( struct mem_cgroup, css); } -inline struct mem_cgroup *mm_cgroup(struct mm_struct *mm) -{ - return rcu_dereference(mm->mem_cgroup); -} - void mm_init_cgroup(struct mm_struct *mm, struct task_struct *p) { struct mem_cgroup *mem; _