From: Tejun Heo Date: Mon, 11 Jun 2007 05:04:01 +0000 (+0900) Subject: sysfs: fix race condition around sd->s_dentry, take#2 X-Git-Tag: v2.6.22-rc5~45 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dd14cbc994709a1c5a64ed3621f583c49a27e521;p=pandora-kernel.git 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 Signed-off-by: Greg Kroah-Hartman --- Reading git-diff-tree failed