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
..
2007-05-21 09:18:19 -07:00
2007-05-17 05:23:04 -07:00
2007-05-21 09:18:19 -07:00
2007-05-31 07:58:14 -07:00
2007-05-11 08:29:36 -07:00
2007-05-11 08:29:36 -07:00
2007-05-17 05:23:04 -07:00
2007-05-17 05:23:04 -07:00
2007-06-08 14:55:14 +00:00
2007-05-21 09:18:19 -07:00
2007-05-21 09:18:19 -07:00
2007-05-07 12:12:51 -07:00
2007-05-02 18:57:59 -07:00
2007-05-08 11:14:59 -07:00
2007-05-07 12:26:27 -07:00
2007-05-23 20:14:15 -07:00
2007-05-17 05:23:04 -07:00
2007-05-08 11:15:07 -07:00
2007-05-17 05:23:04 -07:00
2007-05-17 05:23:04 -07:00
2007-05-31 16:20:15 -04:00
2007-05-17 05:23:04 -07:00
2007-05-08 11:14:59 -07:00
2007-05-23 20:14:13 -07:00
2007-05-21 09:18:19 -07:00
2007-05-21 09:18:19 -07:00
2007-05-21 09:18:19 -07:00
2007-05-08 11:14:57 -07:00
2007-05-21 09:18:19 -07:00
2007-02-12 09:48:47 -08:00
2007-05-17 05:23:04 -07:00
2007-05-17 05:23:04 -07:00
2007-05-09 08:58:16 +02:00
2007-05-09 08:58:16 +02:00
2007-06-04 17:54:09 -07:00
2007-05-17 05:23:04 -07:00
2007-05-14 19:33:46 -04:00
2007-05-21 09:18:19 -07:00
2007-02-12 09:48:46 -08:00
2007-05-21 09:18:19 -07:00
2007-05-30 16:26:01 -04:00
2006-10-20 10:26:41 -07:00
2007-05-21 09:18:19 -07:00
2006-12-07 08:39:46 -08:00
2007-05-31 07:58:13 -07:00
2007-06-06 16:42:03 -07:00
2007-05-17 05:23:04 -07:00
2007-05-21 21:38:17 -07:00
2007-05-17 05:23:04 -07:00
2007-05-17 05:23:04 -07:00
2007-06-07 17:11:13 -07:00
2007-05-23 20:14:13 -07:00
2007-05-17 05:23:04 -07:00
2007-05-21 09:18:19 -07:00
2007-06-12 16:08:47 -07:00
2007-05-17 05:23:04 -07:00
2007-06-01 08:18:28 -07:00
2007-05-17 05:23:04 -07:00
2007-02-12 09:48:46 -08:00
2007-05-29 18:15:17 +10:00
2007-05-11 08:29:37 -07:00
2007-05-11 08:29:36 -07:00
2007-05-08 11:15:07 -07:00
2007-05-08 11:15:07 -07:00
2006-12-08 08:28:41 -08:00
2007-05-08 11:15:07 -07:00
2007-05-08 11:15:15 -07:00
2007-05-08 11:15:07 -07:00
2007-06-08 17:23:32 -07:00
2007-05-21 09:18:19 -07:00
2007-05-08 11:15:07 -07:00
2006-10-04 06:51:26 -06:00
2007-05-07 12:12:55 -07:00
2007-05-17 05:23:04 -07:00
2007-05-21 09:15:32 -07:00
2007-04-04 21:12:47 -07:00
2007-05-25 17:37:46 -07:00
2007-05-23 20:14:12 -07:00
2007-05-08 11:15:07 -07:00
2006-12-07 08:39:25 -08:00
2007-05-09 12:54:17 -07:00
2006-12-08 08:28:41 -08:00
2007-05-17 05:23:05 -07:00
2007-02-11 10:51:31 -08:00
2007-05-18 13:09:34 -07:00
2007-05-15 08:54:00 -07:00
2007-05-23 20:14:13 -07:00
2006-12-10 09:57:22 -08:00
2007-05-21 09:18:19 -07:00
2007-05-08 11:15:07 -07:00
2006-12-22 08:55:50 -08:00
2007-05-08 11:15:01 -07:00
2007-01-26 12:53:20 -08:00
2006-09-29 09:18:24 -07:00
2007-05-17 05:23:04 -07:00
2007-02-12 09:48:28 -08:00
2007-05-08 11:15:11 -07:00
2007-05-08 11:15:09 -07:00
2007-06-04 13:25:10 -07:00
2007-02-12 09:48:32 -08:00
2007-05-09 08:58:15 +02:00
2007-05-21 14:34:00 +09:00
2007-05-09 06:44:57 +02:00
2007-05-17 05:23:04 -07:00
2007-05-11 08:29:36 -07:00
2006-12-07 08:39:25 -08:00
2007-05-11 08:29:35 -07:00
2007-05-11 05:38:26 -04:00
2007-05-08 11:15:12 -07:00
2006-06-30 19:25:36 +02:00
2006-09-30 20:52:31 +02:00
2007-05-08 20:10:00 -07:00
2007-05-08 11:15:03 -07:00
2007-05-08 11:15:11 -07:00
2006-12-08 08:28:51 -08:00
2006-10-01 00:39:19 -07:00
2007-05-17 05:23:05 -07:00
2007-05-08 11:14:59 -07:00
2006-10-01 00:39:28 -07:00
2007-05-08 11:15:09 -07:00
2007-05-09 07:10:02 +02:00
2006-12-08 08:28:41 -08:00
2007-05-23 20:14:14 -07:00
2007-06-08 08:34:11 +02:00
2007-02-19 14:21:50 -08:00
2007-05-08 11:15:07 -07:00
2007-05-08 11:15:01 -07:00
2007-05-08 11:15:04 -07:00
2007-05-18 13:09:34 -07:00
2007-05-08 11:15:18 -07:00
2007-02-14 08:09:54 -08:00
2007-05-11 05:38:26 -04:00