diff options
Diffstat (limited to 'fs/fuse/dir.c')
-rw-r--r-- | fs/fuse/dir.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c index c9a8a426a395..07f4b5e675fc 100644 --- a/fs/fuse/dir.c +++ b/fs/fuse/dir.c | |||
@@ -156,8 +156,12 @@ u64 fuse_get_attr_version(struct fuse_conn *fc) | |||
156 | */ | 156 | */ |
157 | static int fuse_dentry_revalidate(struct dentry *entry, struct nameidata *nd) | 157 | static int fuse_dentry_revalidate(struct dentry *entry, struct nameidata *nd) |
158 | { | 158 | { |
159 | struct inode *inode = entry->d_inode; | 159 | struct inode *inode; |
160 | |||
161 | if (nd->flags & LOOKUP_RCU) | ||
162 | return -ECHILD; | ||
160 | 163 | ||
164 | inode = entry->d_inode; | ||
161 | if (inode && is_bad_inode(inode)) | 165 | if (inode && is_bad_inode(inode)) |
162 | return 0; | 166 | return 0; |
163 | else if (fuse_dentry_time(entry) < get_jiffies_64()) { | 167 | else if (fuse_dentry_time(entry) < get_jiffies_64()) { |