linux/fs/sysfs
Eric W. Biederman 1e5289c97b sysfs: Cache the last sysfs_dirent to improve readdir scalability v2
When sysfs_readdir stops short we now cache the next
sysfs_dirent to return to user space in filp->private_data.
There is no impact on the rest of sysfs by doing this and
in the common case it allows us to pick up exactly where
we left off with no seeking.

Additionally I drop and regrab the sysfs_mutex around
filldir to avoid a page fault abritrarily increasing the
hold time on the sysfs_mutex.

v2: Returned to using INT_MAX as the EOF condition.
    seekdir is ambiguous unless all directory entries have
    a unique f_pos value.

Fixes http://bugzilla.kernel.org/show_bug.cgi?id=14949

Signed-off-by: Eric W. Biederman <ebiederm@aristanetworks.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: stable <stable@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-03-07 17:04:48 -08:00
..
bin.c Driver core: bin_attribute parameters can often be const* 2009-12-23 11:23:43 -08:00
dir.c sysfs: Cache the last sysfs_dirent to improve readdir scalability v2 2010-03-07 17:04:48 -08:00
file.c sysfs: Add sysfs_add/remove_files utility functions 2010-03-07 17:04:47 -08:00
group.c Use WARN() in fs/sysfs 2008-07-26 12:00:07 -07:00
inode.c sysfs: sysfs_sd_setattr set iattrs unconditionally 2010-02-16 15:42:42 -08:00
Kconfig fs/Kconfig: move sysfs out 2009-01-22 13:15:56 +03:00
Makefile
mount.c sysfs: reference sysfs_dirent from sysfs inodes 2009-03-24 16:38:25 -07:00
symlink.c sysfs: Implement sysfs_getattr & sysfs_permission 2009-12-11 11:24:54 -08:00
sysfs.h sysfs: Add lockdep annotations for the sysfs active reference 2010-01-04 12:34:46 -08:00