]> git.baikalelectronics.ru Git - kernel.git/commit
proc: return on proc_readdir error
authorRichard Genoud <richard.genoud@gmail.com>
Mon, 19 Aug 2013 16:30:31 +0000 (18:30 +0200)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 19 Aug 2013 16:47:27 +0000 (09:47 -0700)
commit1fac48b01634a85dbacad9d7ef9681707facf95c
tree84cc97ed83166e4d9f074dc3d47ba301579f34bf
parente590fa6571e4de3d02fbe555ed4834f8d4a9dcc9
proc: return on proc_readdir error

Commit e96910c0783b ("[readdir] convert procfs") introduced a bug on the
listing of the proc file-system.  The return value of proc_readdir()
isn't tested anymore in the proc_root_readdir function.

This lead to an "interesting" behaviour when we are using the getdents()
system call with a buffer too small: instead of failing, it returns the
first entries of /proc (enough to fill the given buffer), plus the PID
directories.

This is not triggered on glibc (as getdents is called with a 32KB
buffer), but on uclibc, the buffer size is only 1KB, thus some proc
entries are missing.

See https://lkml.org/lkml/2013/8/12/288 for more background.

Signed-off-by: Richard Genoud <richard.genoud@gmail.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/proc/root.c