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
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 |
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...