Shakeel Butt <shakeelb@xxxxxxxxxx> writes: > The commit d6810d730022 ("memcg, THP, swap: make mem_cgroup_swapout() > support THP") changed mem_cgroup_swapout() to support transparent huge > page (THP). However the patch missed one location which should be > changed for correctly handling THPs. The resulting bug will cause the > memory cgroups whose THPs were swapped out to become zombies on > deletion. Good catch! Thanks a lot for fixing! Best Regards, Huang, Ying > Fixes: d6810d730022 ("memcg, THP, swap: make mem_cgroup_swapout() support THP") > Signed-off-by: Shakeel Butt <shakeelb@xxxxxxxxxx> > Cc: stable@xxxxxxxxxxxxxxx > --- > mm/memcontrol.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > index 50e6906314f8..ac2ffd5e02b9 100644 > --- a/mm/memcontrol.c > +++ b/mm/memcontrol.c > @@ -6044,7 +6044,7 @@ void mem_cgroup_swapout(struct page *page, swp_entry_t entry) > memcg_check_events(memcg, page); > > if (!mem_cgroup_is_root(memcg)) > - css_put(&memcg->css); > + css_put_many(&memcg->css, nr_entries); > } > > /**