Revision ce48225fe3b1b0d1fc9fceb96ac3d8a879e45114 authored by Hugh Dickins on 03 March 2014, 23:38:24 UTC, committed by Linus Torvalds on 04 March 2014, 15:55:47 UTC
Commit 0eef615665ed ("memcg: fix css reference leak and endless loop in
mem_cgroup_iter") got the interaction with the commit a few before it
d8ad30559715 ("mm/memcg: iteration skip memcgs not yet fully
initialized") slightly wrong, and we didn't notice at the time.

It's elusive, and harder to get than the original, but for a couple of
days before rc1, I several times saw a endless loop similar to that
supposedly being fixed.

This time it was a tighter loop in __mem_cgroup_iter_next(): because we
can get here when our root has already been offlined, and the ordering
of conditions was such that we then just cycled around forever.

Fixes: 0eef615665ed ("memcg: fix css reference leak and endless loop in mem_cgroup_iter").
Signed-off-by: Hugh Dickins <hughd@google.com>
Acked-by: Michal Hocko <mhocko@suse.cz>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Greg Thelen <gthelen@google.com>
Cc: <stable@vger.kernel.org>	[3.12+]
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
1 parent 5f30fc9
History
File Mode Size
Kconfig -rw-r--r-- 1.2 KB
Makefile -rw-r--r-- 383 bytes
addr.c -rw-r--r-- 3.2 KB
addr.h -rw-r--r-- 3.1 KB
bcast.c -rw-r--r-- 22.9 KB
bcast.h -rw-r--r-- 3.6 KB
bearer.c -rw-r--r-- 16.3 KB
bearer.h -rw-r--r-- 7.2 KB
config.c -rw-r--r-- 13.2 KB
config.h -rw-r--r-- 2.8 KB
core.c -rw-r--r-- 5.0 KB
core.h -rw-r--r-- 6.3 KB
discover.c -rw-r--r-- 11.4 KB
discover.h -rw-r--r-- 2.2 KB
eth_media.c -rw-r--r-- 3.3 KB
handler.c -rw-r--r-- 4.1 KB
ib_media.c -rw-r--r-- 3.3 KB
link.c -rw-r--r-- 73.3 KB
link.h -rw-r--r-- 10.6 KB
log.c -rw-r--r-- 2.2 KB
msg.c -rw-r--r-- 3.3 KB
msg.h -rw-r--r-- 14.5 KB
name_distr.c -rw-r--r-- 10.1 KB
name_distr.h -rw-r--r-- 2.1 KB
name_table.c -rw-r--r-- 25.4 KB
name_table.h -rw-r--r-- 4.1 KB
net.c -rw-r--r-- 7.6 KB
net.h -rw-r--r-- 2.0 KB
netlink.c -rw-r--r-- 3.4 KB
node.c -rw-r--r-- 11.9 KB
node.h -rw-r--r-- 5.1 KB
node_subscr.c -rw-r--r-- 3.2 KB
node_subscr.h -rw-r--r-- 2.7 KB
port.c -rw-r--r-- 25.1 KB
port.h -rw-r--r-- 7.0 KB
ref.c -rw-r--r-- 8.3 KB
ref.h -rw-r--r-- 2.1 KB
server.c -rw-r--r-- 13.8 KB
server.h -rw-r--r-- 3.5 KB
socket.c -rw-r--r-- 50.8 KB
subscr.c -rw-r--r-- 11.4 KB
subscr.h -rw-r--r-- 3.2 KB
sysctl.c -rw-r--r-- 2.3 KB

back to top