kernel-ark/fs
Dipankar Sarma ab2af1f500 [PATCH] files: files struct with RCU
Patch to eliminate struct files_struct.file_lock spinlock on the reader side
and use rcu refcounting rcuref_xxx api for the f_count refcounter.  The
updates to the fdtable are done by allocating a new fdtable structure and
setting files->fdt to point to the new structure.  The fdtable structure is
protected by RCU thereby allowing lock-free lookup.  For fd arrays/sets that
are vmalloced, we use keventd to free them since RCU callbacks can't sleep.  A
global list of fdtable to be freed is not scalable, so we use a per-cpu list.
If keventd is already handling the current cpu's work, we use a timer to defer
queueing of that work.

Since the last publication, this patch has been re-written to avoid using
explicit memory barriers and use rcu_assign_pointer(), rcu_dereference()
premitives instead.  This required that the fd information is kept in a
separate structure (fdtable) and updated atomically.

Signed-off-by: Dipankar Sarma <dipankar@in.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-09-09 13:57:55 -07:00
..
adfs
affs [PATCH] update filesystems for new delete_inode behavior 2005-09-09 13:57:27 -07:00
afs
autofs [PATCH] autofs: fix "busy inodes after umount..." 2005-09-09 13:57:31 -07:00
autofs4
befs
bfs [PATCH] bfs: fix endianness, signedness; add trivial bugfix 2005-09-09 13:57:32 -07:00
cifs
coda
cramfs
debugfs
devfs
devpts
efs
exportfs
ext2 [PATCH] ext2: Enable atomic inode security labeling 2005-09-09 13:57:27 -07:00
ext3 [PATCH] ext3: Enable atomic inode security labeling 2005-09-09 13:57:28 -07:00
fat [PATCH] update filesystems for new delete_inode behavior 2005-09-09 13:57:27 -07:00
freevxfs
hfs
hfsplus
hostfs [PATCH] update filesystems for new delete_inode behavior 2005-09-09 13:57:27 -07:00
hpfs [PATCH] update filesystems for new delete_inode behavior 2005-09-09 13:57:27 -07:00
hppfs
hugetlbfs
isofs
jbd
jffs [PATCH] update filesystems for new delete_inode behavior 2005-09-09 13:57:27 -07:00
jffs2
jfs [PATCH] update filesystems for new delete_inode behavior 2005-09-09 13:57:27 -07:00
lockd
minix [PATCH] update filesystems for new delete_inode behavior 2005-09-09 13:57:27 -07:00
msdos
ncpfs [PATCH] update filesystems for new delete_inode behavior 2005-09-09 13:57:27 -07:00
nfs [PATCH] update filesystems for new delete_inode behavior 2005-09-09 13:57:27 -07:00
nfs_common
nfsd
nls
ntfs NTFS: 2.1.24 release and some minor final fixes. 2005-09-08 23:01:16 +01:00
openpromfs
partitions
proc [PATCH] files: break up files struct 2005-09-09 13:57:55 -07:00
qnx4 [PATCH] update filesystems for new delete_inode behavior 2005-09-09 13:57:27 -07:00
ramfs
reiserfs [PATCH] update filesystems for new delete_inode behavior 2005-09-09 13:57:27 -07:00
relayfs
romfs
smbfs [PATCH] update filesystems for new delete_inode behavior 2005-09-09 13:57:27 -07:00
sysfs
sysv [PATCH] update filesystems for new delete_inode behavior 2005-09-09 13:57:27 -07:00
udf [PATCH] update filesystems for new delete_inode behavior 2005-09-09 13:57:27 -07:00
ufs [PATCH] update filesystems for new delete_inode behavior 2005-09-09 13:57:27 -07:00
vfat
xfs [XFS] Revert recent quota Makefile change, not in a fit state for merging. 2005-09-09 11:38:09 +10:00
aio.c [PATCH] files: files struct with RCU 2005-09-09 13:57:55 -07:00
attr.c
bad_inode.c
binfmt_aout.c
binfmt_elf_fdpic.c
binfmt_elf.c
binfmt_em86.c
binfmt_flat.c
binfmt_misc.c
binfmt_script.c
binfmt_som.c
bio.c [PATCH] bogus cast in bio.c 2005-09-09 10:31:58 -07:00
block_dev.c
buffer.c
char_dev.c
compat_ioctl.c
compat.c
dcache.c
dcookies.c
direct-io.c
dnotify.c
dquot.c
eventpoll.c
exec.c [PATCH] files: break up files struct 2005-09-09 13:57:55 -07:00
fcntl.c [PATCH] files: files struct with RCU 2005-09-09 13:57:55 -07:00
fifo.c
file_table.c [PATCH] files: files struct with RCU 2005-09-09 13:57:55 -07:00
file.c [PATCH] files: files struct with RCU 2005-09-09 13:57:55 -07:00
filesystems.c
fs-writeback.c
inode.c [PATCH] move truncate_inode_pages() into ->delete_inode() 2005-09-09 13:57:26 -07:00
inotify.c
ioctl.c
ioprio.c
Kconfig
Kconfig.binfmt
libfs.c
locks.c [PATCH] files: break up files struct 2005-09-09 13:57:55 -07:00
Makefile
mbcache.c
mpage.c
namei.c [PATCH] remove the inode_post_link and inode_post_rename LSM hooks 2005-09-09 13:57:28 -07:00
namespace.c
nfsctl.c
open.c [PATCH] files: files struct with RCU 2005-09-09 13:57:55 -07:00
pipe.c
posix_acl.c
quota_v1.c
quota_v2.c
quota.c
read_write.c
readdir.c
select.c [PATCH] files: break up files struct 2005-09-09 13:57:55 -07:00
seq_file.c
stat.c
super.c
xattr_acl.c
xattr.c