diff options
author | Jeremy Kerr <jk@ozlabs.org> | 2009-06-29 10:31:58 +0400 |
---|---|---|
committer | Eric Paris <eparis@redhat.com> | 2009-06-29 18:00:58 +0400 |
commit | e6ce3066010a21bde961d8f8cefe0b69cae78a0f (patch) | |
tree | 15daad02d6c41c7947cab0a8760dac1046c472ff | |
parent | 52989765629e7d182b4f146050ebba0abf2cb0b7 (diff) | |
download | linux-e6ce3066010a21bde961d8f8cefe0b69cae78a0f.tar.xz |
fs: allow d_instantiate to be called with negative parent dentry
The new fsnotify infrastructure (starting at 90586523) causes an oops in
spufs, where we populate a directory with files before instantiating the
directory itself. The new changes seem to have introduced an assumption
that a dentry's parent will be positive when instantiating.
This change makes it once again possible to d_instantiate a dentry
with a negative parent, and brings __fsnotify_d_instantiate() into
line with inotify_d_instantiate(), which already has this NULL check.
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Signed-off-by: Eric Paris <eparis@redhat.com>
-rw-r--r-- | include/linux/fsnotify_backend.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/linux/fsnotify_backend.h b/include/linux/fsnotify_backend.h index 44848aa830dc..6c3de999fb34 100644 --- a/include/linux/fsnotify_backend.h +++ b/include/linux/fsnotify_backend.h @@ -280,7 +280,7 @@ static inline void __fsnotify_update_dcache_flags(struct dentry *dentry) assert_spin_locked(&dentry->d_lock); parent = dentry->d_parent; - if (fsnotify_inode_watches_children(parent->d_inode)) + if (parent->d_inode && fsnotify_inode_watches_children(parent->d_inode)) dentry->d_flags |= DCACHE_FSNOTIFY_PARENT_WATCHED; else dentry->d_flags &= ~DCACHE_FSNOTIFY_PARENT_WATCHED; |