linux/fs
Richard Genoud 94fc5d9de5 proc: return on proc_readdir error
Commit f0c3b5093a ("[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>
2013-08-19 09:47:27 -07:00
..
9p
adfs
affs
afs
autofs4
befs
bfs
btrfs btrfs: don't loop on large offsets in readdir 2013-08-09 19:34:56 -04:00
cachefiles
ceph
cifs cifs: don't instantiate new dentries in readdir for inodes that need to be revalidated immediately 2013-08-07 10:57:06 -05:00
coda
configfs Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2013-07-14 11:42:26 -07:00
cramfs
debugfs debugfs: debugfs_remove_recursive() must not rely on list_empty(d_subdirs) 2013-07-31 12:16:31 -04:00
devpts
dlm dlm: kill the unnecessary and wrong device_close()->recalc_sigpending() 2013-08-09 10:48:20 -07:00
ecryptfs
efivarfs efivarfs: we can use simple_lookup() now 2013-07-14 17:48:35 +04:00
efs
exofs
exportfs
ext2
ext3 ext3: fix a BUG when opening a file with O_TMPFILE flag 2013-07-20 22:03:20 -04:00
ext4 jbd2: Fix oops in jbd2_journal_file_inode() 2013-08-16 21:19:41 -04:00
f2fs
fat
freevxfs
fscache
fuse fuse: readdirplus: cleanup 2013-07-17 14:53:54 +02:00
gfs2 GFS2: Check for glock already held in gfs2_getxattr 2013-08-19 09:33:57 +01:00
hfs
hfsplus
hostfs
hpfs
hppfs
hugetlbfs hugetlb: fix lockdep splat caused by pmd sharing 2013-08-13 17:57:48 -07:00
isofs
jbd
jbd2
jffs2
jfs
lockd LOCKD: Don't call utsname()->nodename from nlmclnt_setlockargs 2013-08-05 15:03:46 -04:00
logfs
minix
ncpfs
nfs NFSv4: Fix up nfs4_proc_lookup_mountpoint 2013-08-07 20:47:26 -04:00
nfs_common
nfsd nfsd: Fix SP4_MACH_CRED negotiation in EXCHANGE_ID 2013-08-07 12:06:07 -04:00
nilfs2
nls
notify
ntfs
ocfs2 ocfs2: fix null pointer dereference in ocfs2_dir_foreach_blk_id() 2013-08-13 17:57:49 -07:00
omfs
openpromfs
proc proc: return on proc_readdir error 2013-08-19 09:47:27 -07:00
pstore
qnx4
qnx6
quota
ramfs
reiserfs reiserfs: fix deadlock in umount 2013-08-05 17:37:37 +04:00
romfs
squashfs
sysfs sysfs: prevent warning when only using binary attributes 2013-07-16 10:57:36 -07:00
sysv
ubifs
udf
ufs
xfs xfs: di_flushiter considered harmful 2013-07-25 10:41:42 -05:00
aio.c
anon_inodes.c
attr.c
bad_inode.c
binfmt_aout.c
binfmt_elf.c
binfmt_elf_fdpic.c
binfmt_em86.c
binfmt_flat.c
binfmt_misc.c
binfmt_script.c
binfmt_som.c
bio-integrity.c
bio.c
block_dev.c
buffer.c
char_dev.c
compat.c
compat_binfmt_elf.c
compat_ioctl.c
coredump.c
coredump.h
dcache.c
dcookies.c
direct-io.c
drop_caches.c
eventfd.c
eventpoll.c
exec.c Fix TLB gather virtual address range invalidation corner cases 2013-08-16 08:52:46 -07:00
fcntl.c vfs: add missing check for __O_TMPFILE in fcntl_init() 2013-08-05 18:25:32 +04:00
fhandle.c
file.c
file_table.c fput: turn "list_head delayed_fput_list" into llist_head 2013-07-13 13:29:10 +04:00
filesystems.c
fs-writeback.c
fs_struct.c
generic_acl.c
inode.c
internal.h
ioctl.c
ioprio.c
Kconfig
Kconfig.binfmt
libfs.c make simple_lookup() usable for filesystems that set ->s_d_op 2013-07-14 17:43:25 +04:00
locks.c
Makefile
mbcache.c
mount.h
mpage.c
namei.c fs: Allow unprivileged linkat(..., AT_EMPTY_PATH) aka flink 2013-08-05 18:24:11 +04:00
namespace.c
no-block.c
open.c fs: Fix file mode for O_TMPFILE 2013-08-05 18:24:10 +04:00
pipe.c
pnode.c
pnode.h
posix_acl.c
proc_namespace.c
read_write.c
readdir.c
select.c
seq_file.c
signalfd.c
splice.c
stack.c
stat.c
statfs.c
super.c livelock avoidance in sget() 2013-07-20 04:58:58 +04:00
sync.c
timerfd.c
utimes.c
xattr.c
xattr_acl.c