linux-stable-rt/fs/sysfs
Tejun Heo dd14cbc994 sysfs: fix race condition around sd->s_dentry, take#2
Allowing attribute and symlink dentries to be reclaimed means
sd->s_dentry can change dynamically.  However, updates to the field
are unsynchronized leading to race conditions.  This patch adds
sysfs_lock and use it to synchronize updates to sd->s_dentry.

Due to the locking around ->d_iput, the check in sysfs_drop_dentry()
is complex.  sysfs_lock only protect sd->s_dentry pointer itself.  The
validity of the dentry is protected by dcache_lock, so whether dentry
is alive or not can only be tested while holding both locks.

This is minimal backport of sysfs_drop_dentry() rewrite in devel
branch.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2007-06-12 16:08:47 -07:00
..
Makefile
bin.c
dir.c sysfs: fix race condition around sd->s_dentry, take#2 2007-06-12 16:08:47 -07:00
file.c use simple_read_from_buffer() in fs/ 2007-05-09 12:30:49 -07:00
group.c
inode.c sysfs: fix race condition around sd->s_dentry, take#2 2007-06-12 16:08:47 -07:00
mount.c sysfs: store sysfs inode nrs in s_ino to avoid readdir oopses 2007-06-12 16:08:46 -07:00
symlink.c
sysfs.h sysfs: fix race condition around sd->s_dentry, take#2 2007-06-12 16:08:47 -07:00