aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAmy Griffis <amy.griffis@hp.com>2006-03-31 05:30:54 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2006-03-31 15:18:55 -0500
commit7a2bd3f7efa86e8b56482a8f8948c8b222064a67 (patch)
tree34a90c6b4f08efb1b7f3ca6face4879164c28e15
parent094e320d761dae5816d8faa695b0509eea79c108 (diff)
[PATCH] inotify: IN_DELETE events missing
IN_DELETE events are no longer generated for the removal of a file from a watched directory. This seems to be a result of clearing DCACHE_INOTIFY_PARENT_WATCHED in d_delete() directly before calling fsnotify_nameremove(). Assuming the flag doesn't need to be cleared before dentry_iput(), this should do the trick. Signed-off-by: Amy Griffis <amy.griffis@hp.com> Cc: John McCutchan <ttb@tentacle.dhs.org> Acked-by: Robert Love <rml@novell.com> Cc: Nick Piggin <nickpiggin@yahoo.com.au> Cc: <stable@kernel.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--fs/dcache.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/fs/dcache.c b/fs/dcache.c
index 19458d399502..21dffeec755b 100644
--- a/fs/dcache.c
+++ b/fs/dcache.c
@@ -1172,11 +1172,11 @@ void d_delete(struct dentry * dentry)
1172 spin_lock(&dentry->d_lock); 1172 spin_lock(&dentry->d_lock);
1173 isdir = S_ISDIR(dentry->d_inode->i_mode); 1173 isdir = S_ISDIR(dentry->d_inode->i_mode);
1174 if (atomic_read(&dentry->d_count) == 1) { 1174 if (atomic_read(&dentry->d_count) == 1) {
1175 /* remove this and other inotify debug checks after 2.6.18 */
1176 dentry->d_flags &= ~DCACHE_INOTIFY_PARENT_WATCHED;
1177
1178 dentry_iput(dentry); 1175 dentry_iput(dentry);
1179 fsnotify_nameremove(dentry, isdir); 1176 fsnotify_nameremove(dentry, isdir);
1177
1178 /* remove this and other inotify debug checks after 2.6.18 */
1179 dentry->d_flags &= ~DCACHE_INOTIFY_PARENT_WATCHED;
1180 return; 1180 return;
1181 } 1181 }
1182 1182