aboutsummaryrefslogtreecommitdiffstats
path: root/fs/inotify.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/inotify.c')
-rw-r--r--fs/inotify.c17
1 files changed, 5 insertions, 12 deletions
diff --git a/fs/inotify.c b/fs/inotify.c
index b2b109bf29d6..690e72595e6e 100644
--- a/fs/inotify.c
+++ b/fs/inotify.c
@@ -168,20 +168,14 @@ static void set_dentry_child_flags(struct inode *inode, int watched)
168 struct dentry *child; 168 struct dentry *child;
169 169
170 list_for_each_entry(child, &alias->d_subdirs, d_u.d_child) { 170 list_for_each_entry(child, &alias->d_subdirs, d_u.d_child) {
171 if (!child->d_inode) { 171 if (!child->d_inode)
172 WARN_ON(child->d_flags & DCACHE_INOTIFY_PARENT_WATCHED);
173 continue; 172 continue;
174 } 173
175 spin_lock(&child->d_lock); 174 spin_lock(&child->d_lock);
176 if (watched) { 175 if (watched)
177 WARN_ON(child->d_flags &
178 DCACHE_INOTIFY_PARENT_WATCHED);
179 child->d_flags |= DCACHE_INOTIFY_PARENT_WATCHED; 176 child->d_flags |= DCACHE_INOTIFY_PARENT_WATCHED;
180 } else { 177 else
181 WARN_ON(!(child->d_flags & 178 child->d_flags &=~DCACHE_INOTIFY_PARENT_WATCHED;
182 DCACHE_INOTIFY_PARENT_WATCHED));
183 child->d_flags&=~DCACHE_INOTIFY_PARENT_WATCHED;
184 }
185 spin_unlock(&child->d_lock); 179 spin_unlock(&child->d_lock);
186 } 180 }
187 } 181 }
@@ -253,7 +247,6 @@ void inotify_d_instantiate(struct dentry *entry, struct inode *inode)
253 if (!inode) 247 if (!inode)
254 return; 248 return;
255 249
256 WARN_ON(entry->d_flags & DCACHE_INOTIFY_PARENT_WATCHED);
257 spin_lock(&entry->d_lock); 250 spin_lock(&entry->d_lock);
258 parent = entry->d_parent; 251 parent = entry->d_parent;
259 if (parent->d_inode && inotify_inode_watched(parent->d_inode)) 252 if (parent->d_inode && inotify_inode_watched(parent->d_inode))