浏览代码

undo "fs: allow d_instantiate to be called with negative parent dentry"

Background: spufs used to mangle the order in which it had been building
dentry trees.  It was broken in a lot of ways, but most of them required
the right timing to trigger until an fsnotify change had added one more
- the one that was always triggered.

Unfortunately, insteading of fixing their long-standing bug the spufs
folks had chosen to paper over the fsnotify trigger.  Eventually said
bug had been spotted and killed off, but the pointless check in
fsnotify has remained, complete with the implication that one *could*
do that kind of crap.

Again, a parent of any dentry should always be positive.  Any code
can rely upon that and anything violating that assert is a bug,
*not* something to be accomodated.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Al Viro 9 年之前
父节点
当前提交
2853908a59
共有 1 个文件被更改,包括 1 次插入1 次删除
  1. 1 1
      include/linux/fsnotify_backend.h

+ 1 - 1
include/linux/fsnotify_backend.h

@@ -281,7 +281,7 @@ static inline void __fsnotify_update_dcache_flags(struct dentry *dentry)
 	 * us with the new state.
 	 */
 	parent = dentry->d_parent;
-	if (parent->d_inode && fsnotify_inode_watches_children(parent->d_inode))
+	if (fsnotify_inode_watches_children(parent->d_inode))
 		dentry->d_flags |= DCACHE_FSNOTIFY_PARENT_WATCHED;
 	else
 		dentry->d_flags &= ~DCACHE_FSNOTIFY_PARENT_WATCHED;