Revision 4528fd0595847c2078b59f24800e751c2d6b7e41 authored by Li Zefan on 02 February 2010, 21:44:10 UTC, committed by Linus Torvalds on 03 February 2010, 02:11:22 UTC
In cgroup_create(), if alloc_css_id() returns failure, the errno is not
propagated to userspace, so mkdir will fail silently.

To trigger this bug, we mount blkio (or memory subsystem), and create more
then 65534 cgroups.  (The number of cgroups is limited to 65535 if a
subsystem has use_id == 1)

 # mount -t cgroup -o blkio xxx /mnt
 # for ((i = 0; i < 65534; i++)); do mkdir /mnt/$i; done
 # mkdir /mnt/65534
 (should return ENOSPC)
 #

Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
Acked-by: Serge Hallyn <serue@us.ibm.com>
Acked-by: Paul Menage <menage@google.com>
Acked-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
1 parent ef2b9b0
Raw File
Kconfig.debug
config DEBUG_PAGEALLOC
	bool "Debug page memory allocations"
	depends on DEBUG_KERNEL && ARCH_SUPPORTS_DEBUG_PAGEALLOC
	depends on !HIBERNATION || !PPC && !SPARC
	depends on !KMEMCHECK
	---help---
	  Unmap pages from the kernel linear mapping after free_pages().
	  This results in a large slowdown, but helps to find certain types
	  of memory corruption.

config WANT_PAGE_DEBUG_FLAGS
	bool

config PAGE_POISONING
	bool "Debug page memory allocations"
	depends on DEBUG_KERNEL && !ARCH_SUPPORTS_DEBUG_PAGEALLOC
	depends on !HIBERNATION
	select DEBUG_PAGEALLOC
	select WANT_PAGE_DEBUG_FLAGS
	---help---
	   Fill the pages with poison patterns after free_pages() and verify
	   the patterns before alloc_pages(). This results in a large slowdown,
	   but helps to find certain types of memory corruption.

	   This option cannot be enabled in combination with hibernation as
	   that would result in incorrect warnings of memory corruption after
	   a resume because free pages are not saved to the suspend image.
back to top