Nick Piggin d599e36a9e inotify: fix race
There is a race between setting an inode's children's "parent watched" flag
when placing the first watch on a parent, and instantiating new children of
that parent: a child could miss having its flags set by
set_dentry_child_flags, but then inotify_d_instantiate might still see
!inotify_inode_watched.

The solution is to set_dentry_child_flags after adding the watch.  Locking is
taken care of, because both set_dentry_child_flags and inotify_d_instantiate
hold dcache_lock and child->d_locks.

Signed-off-by: Nick Piggin <npiggin@suse.de>
Cc: Robert Love <rlove@google.com>
Cc: John McCutchan <ttb@tentacle.dhs.org>
Cc: Jan Kara <jack@ucw.cz>
Cc: Yan Zheng <yanzheng@21cn.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-02-06 10:41:06 -08:00
..
2007-10-17 08:42:47 -07:00
2008-01-28 23:58:27 -05:00
2007-10-19 11:53:37 -07:00
2008-02-03 17:33:42 +02:00
2007-12-05 09:25:20 -08:00
2007-10-22 08:13:21 -07:00
2008-02-06 10:41:02 -08:00
2008-02-03 17:33:42 +02:00
2008-01-30 13:31:20 +01:00
2008-01-30 13:31:20 +01:00
2008-02-03 15:14:02 +02:00
2008-02-03 15:42:53 +02:00
2007-10-18 14:37:31 -07:00
2008-02-06 10:41:04 -08:00
2007-12-05 09:21:18 -08:00
2008-02-03 18:05:15 +02:00
2007-10-17 08:42:54 -07:00
2008-01-30 13:31:46 +01:00
2008-01-28 23:21:18 +01:00
2008-02-06 10:41:04 -08:00
2008-02-05 09:44:07 -08:00
2008-02-06 10:41:06 -08:00
2008-02-05 14:37:15 -08:00
2008-01-30 13:31:46 +01:00
2008-02-03 17:51:36 -05:00
2008-01-30 13:31:46 +01:00
2007-11-14 18:45:42 -08:00
2007-10-15 17:00:19 +02:00
2008-02-06 10:41:02 -08:00
2007-10-19 11:53:41 -07:00
2008-02-05 09:44:07 -08:00