Al Viro
c2338f2dc7
lock_parent: don't step on stale ->d_parent of all-but-freed one
...
Dentry that had been through (or into) __dentry_kill() might be seen
by shrink_dentry_list(); that's normal, it'll be taken off the shrink
list and freed if __dentry_kill() has already finished. The problem
is, its ->d_parent might be pointing to already freed dentry, so
lock_parent() needs to be careful.
We need to check that dentry hasn't already gone into __dentry_kill()
*and* grab rcu_read_lock() before dropping ->d_lock - the latter makes
sure that whatever we see in ->d_parent after dropping ->d_lock it
won't be freed until we drop rcu_read_lock().
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk >
2014-06-12 00:29:13 -04:00
..
2014-05-06 17:38:00 -04:00
2014-05-06 17:38:00 -04:00
2014-05-06 17:38:00 -04:00
2014-06-12 00:28:09 -04:00
2014-05-06 13:04:59 -07:00
2014-04-04 15:39:39 -07:00
2014-05-06 17:38:00 -04:00
2014-06-12 00:28:09 -04:00
2014-04-12 14:49:50 -07:00
2014-06-12 00:21:12 -04:00
2014-06-12 00:28:09 -04:00
2014-04-04 15:39:39 -07:00
2013-11-21 16:42:27 -08:00
2014-04-04 15:39:39 -07:00
2014-04-04 15:39:39 -07:00
2014-03-13 10:14:33 -04:00
2014-04-11 16:15:36 -04:00
2014-05-06 17:38:00 -04:00
2014-03-04 16:16:16 +00:00
2014-04-04 15:39:39 -07:00
2014-06-12 00:18:51 -04:00
2013-11-09 00:16:38 -05:00
2014-06-12 00:18:51 -04:00
2014-06-12 00:18:51 -04:00
2014-06-12 00:18:51 -04:00
2014-06-12 00:18:51 -04:00
2014-05-06 17:38:00 -04:00
2014-04-04 15:39:39 -07:00
2014-02-17 13:47:35 -08:00
2014-05-06 17:39:45 -04:00
2014-06-12 00:18:51 -04:00
2014-05-06 17:38:00 -04:00
2014-05-06 17:38:00 -04:00
2014-05-06 17:38:00 -04:00
2014-05-06 17:38:00 -04:00
2013-07-03 16:07:41 -07:00
2014-05-06 13:04:58 -07:00
2014-04-07 17:59:17 -07:00
2013-12-04 12:27:46 +01:00
2014-03-12 16:38:03 -04:00
2014-05-06 17:38:00 -04:00
2014-06-12 00:18:51 -04:00
2014-05-13 13:21:40 +02:00
2014-03-28 10:43:08 -04:00
2014-05-06 17:38:00 -04:00
2014-05-06 17:38:00 -04:00
2014-04-12 17:31:22 -07:00
2014-06-12 00:21:11 -04:00
2014-05-21 11:11:21 -04:00
2014-05-06 17:38:00 -04:00
2014-01-25 03:14:05 -05:00
2014-05-06 13:04:59 -07:00
2014-05-06 17:37:55 -04:00
2014-06-12 00:28:09 -04:00
2014-05-06 17:38:00 -04:00
2014-03-13 10:14:33 -04:00
2014-04-12 14:49:50 -07:00
2014-04-04 15:39:39 -07:00
2014-03-13 10:14:33 -04:00
2014-03-13 10:14:33 -04:00
2014-04-07 17:59:17 -07:00
2014-06-12 00:18:51 -04:00
2014-06-12 00:18:51 -04:00
2014-05-06 17:37:55 -04:00
2014-03-13 10:14:33 -04:00
2014-05-20 10:15:53 +09:00
2014-05-06 17:38:00 -04:00
2014-06-12 00:18:51 -04:00
2014-05-06 17:39:36 -04:00
2014-05-06 17:38:00 -04:00
2014-06-12 00:28:09 -04:00
2014-05-06 17:36:00 -04:00
2014-03-27 09:52:54 -07:00
2013-12-05 16:36:21 -06:00
2013-11-09 00:16:26 -05:00
2013-11-09 00:16:30 -05:00
2014-04-07 16:35:52 -07:00
2013-10-24 23:34:54 -04:00
2014-04-03 16:21:16 -07:00
2014-04-09 08:00:06 -06:00
2014-04-12 14:49:50 -07:00
2014-06-12 00:18:51 -04:00
2014-04-12 14:49:50 -07:00
2013-11-14 12:08:14 +09:00
2014-03-04 08:05:21 +00:00
2014-03-06 16:30:44 +01:00
2014-04-22 08:23:58 -04:00
2014-04-19 13:23:31 -07:00
2014-06-12 00:29:13 -04:00
2014-01-29 16:22:40 -08:00
2014-05-06 17:32:52 -04:00
2014-04-03 16:21:04 -07:00
2014-01-25 03:13:04 -05:00
2014-01-02 14:40:30 -08:00
2014-05-15 00:00:35 +01:00
2014-04-22 08:23:58 -04:00
2014-05-06 17:36:00 -04:00
2014-05-06 17:31:10 -04:00
2014-04-03 16:21:05 -07:00
2013-11-06 12:40:26 +01:00
2014-04-04 14:49:16 -07:00
2014-04-04 15:39:39 -07:00
2013-11-09 00:16:20 -05:00
2013-10-24 23:34:54 -04:00
2014-02-07 16:08:57 -08:00
2013-11-15 22:04:17 -05:00
2014-05-09 11:41:54 -04:00
2014-02-07 16:08:57 -08:00
2014-03-18 19:24:49 -04:00
2014-04-01 23:19:09 -04:00
2013-11-23 22:33:47 -08:00
2014-04-19 12:30:58 -04:00
2014-04-01 23:19:18 -04:00
2014-05-06 17:36:00 -04:00
2014-05-06 17:39:42 -04:00
2014-04-01 23:19:08 -04:00
2014-04-01 23:19:08 -04:00
2014-05-06 13:58:42 -04:00
2014-04-01 23:19:09 -04:00
2014-05-06 17:37:55 -04:00
2013-10-24 23:34:54 -04:00
2013-11-13 15:34:18 +09:00
2013-11-18 19:07:53 -08:00
2014-06-12 00:28:09 -04:00
2013-11-09 00:16:31 -05:00
2013-10-12 13:12:31 -07:00
2014-04-16 11:53:08 -07:00
2014-02-22 02:02:28 +01:00
2014-01-23 16:57:40 -08:00
2013-11-09 00:16:44 -05:00